Browse Source

irqbalance package update

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 6 years ago
parent
commit
0c520e822d
  1. 12
      SOURCES/irqbalance-1.0.4-env-file-path.patch
  2. 17
      SOURCES/irqbalance-1.0.6-man_IRQBALANCE_BANNED_CPUS.patch
  3. 24
      SOURCES/irqbalance-1.0.7-ignore_affinity_hint.patch
  4. 11
      SOURCES/irqbalance-1.0.7-manpage-hostname.patch
  5. 37
      SOURCES/irqbalance-1.0.8-Balance-correctly-IRQs-reappearing.patch
  6. 24
      SOURCES/irqbalance-1.0.8-Invalid-parsing-for-isolated-and-nohz_full-cpu-masks.patch
  7. 26
      SOURCES/irqbalance-1.0.8-Manpage-note-about-ignoring-of-pid-in-some-cases.patch
  8. 27
      SOURCES/irqbalance-1.0.8-Warning-when-irqbalance-hasn-t-root-privileges.patch
  9. 36
      SOURCES/irqbalance-1.0.8-fix-cpulist_parse-definition-to-match-bitmap_parseli.patch
  10. 40
      SOURCES/irqbalance-1.0.8-fix-memory-leak-in-classify-code.patch
  11. 141
      SOURCES/irqbalance-1.0.8-import-__bitmap_parselist-from-Linux-kernel.patch
  12. 82
      SOURCES/irqbalance-1.0.8-irqbalance-signal-handling-tuning.patch
  13. 96
      SOURCES/irqbalance-1.0.8-parse-isolcpus-and-nohz-cpus-from-sysfs.patch
  14. 101
      SOURCES/irqbalance-1.0.8-parse-isolcpus-from-proc-cmdline-to-set-up-banned_cp.patch
  15. 25
      SOURCES/irqbalance-1.0.8-removing-unused-variable-cache_stat.patch
  16. 152
      SOURCES/irqbalance-1.0.8-separate-cmomand-line-banned-irqs.patch
  17. 30
      SOURCES/irqbalance-1.0.9-irqbalance-set-IRQBALANCE_DEBUG-variable-implies-for.patch
  18. 26
      SOURCES/irqbalance-node-package.patch
  19. 28
      SOURCES/irqbalance.sysconfig
  20. 390
      SPECS/irqbalance.spec

12
SOURCES/irqbalance-1.0.4-env-file-path.patch

@ -0,0 +1,12 @@
diff -up irqbalance-1.0.4/misc/irqbalance.service.orig irqbalance-1.0.4/misc/irqbalance.service
--- irqbalance-1.0.4/misc/irqbalance.service.orig 2012-08-29 16:24:42.011844627 +0200
+++ irqbalance-1.0.4/misc/irqbalance.service 2012-08-29 16:24:59.817845765 +0200
@@ -3,7 +3,7 @@ Description=irqbalance daemon
After=syslog.target
[Service]
-EnvironmentFile=/path/to/irqbalance.env
+EnvironmentFile=/etc/sysconfig/irqbalance
ExecStart=/usr/sbin/irqbalance --foreground $IRQBALANCE_ARGS
[Install]

17
SOURCES/irqbalance-1.0.6-man_IRQBALANCE_BANNED_CPUS.patch

@ -0,0 +1,17 @@
diff -up irqbalance-1.0.6/irqbalance.1.orig irqbalance-1.0.6/irqbalance.1
--- irqbalance-1.0.6/irqbalance.1.orig 2013-10-31 16:13:49.250139242 +0100
+++ irqbalance-1.0.6/irqbalance.1 2013-10-31 16:44:59.368055192 +0100
@@ -119,7 +119,12 @@ Same as --debug
.TP
.B IRQBALANCE_BANNED_CPUS
-Provides a mask of cpus which irqbalance should ignore and never assign interrupts to
+Provides a mask of cpus which irqbalance should ignore and never assign interrupts to.
+This is a hex mask without the leading ’0x’, on systems with large numbers of processors
+each group of eight hex digits is separated by a comma ’,’. i.e. ‘export IRQBALANCE_BANNED_CPUS=fc0‘
+would prevent irqbalance from assigning irqs to the 7th-12th cpus (cpu6-cpu11) or
+‘export IRQBALANCE_BANNED_CPUS=ff000000,00000001‘ would prevent irqbalance from
+assigning irqs to the 1st (cpu0) and 57th-64th cpus (cpu56-cpu63).
.SH "SIGNALS"
.TP

24
SOURCES/irqbalance-1.0.7-ignore_affinity_hint.patch

@ -0,0 +1,24 @@
diff -up irqbalance-1.0.7/irqbalance.1.orig irqbalance-1.0.7/irqbalance.1
--- irqbalance-1.0.7/irqbalance.1.orig 2014-08-19 14:42:45.760710296 +0200
+++ irqbalance-1.0.7/irqbalance.1 2014-08-19 14:43:00.246715877 +0200
@@ -57,6 +57,8 @@ irq is balanced, but the assigned object
.P
.I ignore
irq affinity hint value is completely ignored
+.P
+The default value for hintpolicy is ignore
.TP
.B -p, --powerthresh=<threshold>
diff -up irqbalance-1.0.7/irqbalance.c.orig irqbalance-1.0.7/irqbalance.c
--- irqbalance-1.0.7/irqbalance.c.orig 2013-10-10 17:14:07.000000000 +0200
+++ irqbalance-1.0.7/irqbalance.c 2014-08-19 14:43:00.247715877 +0200
@@ -48,7 +48,7 @@ int foreground_mode;
int numa_avail;
int need_rescan;
unsigned int log_mask = TO_ALL;
-enum hp_e hint_policy = HINT_POLICY_SUBSET;
+enum hp_e hint_policy = HINT_POLICY_IGNORE;
unsigned long power_thresh = ULONG_MAX;
unsigned long deepest_cache = ULONG_MAX;
unsigned long long cycle_count = 0;

11
SOURCES/irqbalance-1.0.7-manpage-hostname.patch

@ -0,0 +1,11 @@
diff -up irqbalance-1.0.7/irqbalance.1.orig irqbalance-1.0.7/irqbalance.1
--- irqbalance-1.0.7/irqbalance.1.orig 2015-01-06 10:47:45.750459727 +0100
+++ irqbalance-1.0.7/irqbalance.1 2015-01-06 10:48:17.132521825 +0100
@@ -145,6 +145,6 @@ assigning irqs to the 1st (cpu0) and 57t
Forces a rescan of the available irqs and system topology
.SH "Homepage"
-http://code.google.com/p/irqbalance
+https://github.com/Irqbalance/irqbalance

37
SOURCES/irqbalance-1.0.8-Balance-correctly-IRQs-reappearing.patch

@ -0,0 +1,37 @@
From 93ed80181e0ce7b81bc88a67fabad1ad829fc460 Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <frediano.ziglio@citrix.com>
Date: Wed, 2 Jul 2014 12:59:34 +0100
Subject: [PATCH 1/1] Balance correctly IRQs reappearing

If IRQ disappears and reappears later (this happens frequently for Xen)
the IRQ is not balanced correctly due to overflow in irq_count (as the
counter got smaller and difference cause overflow).
Rescan if this happens fix the problem.

Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
procinterrupts.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/procinterrupts.c b/procinterrupts.c
index 6a6bdaa..3476473 100644
--- a/procinterrupts.c
+++ b/procinterrupts.c
@@ -181,6 +181,14 @@ void parse_proc_interrupts(void)
break;
}
+ /* IRQ removed and reinserted, need restart or this will
+ * cause an overflow and IRQ won't be rebalanced again
+ */
+ if (count < info->irq_count) {
+ need_rescan = 1;
+ break;
+ }
+
info->last_irq_count = info->irq_count;
info->irq_count = count;
--
2.16.1

24
SOURCES/irqbalance-1.0.8-Invalid-parsing-for-isolated-and-nohz_full-cpu-masks.patch

@ -0,0 +1,24 @@
diff --git a/cputree.c b/cputree.c
index fbd03b5..c5ae645 100644
--- a/cputree.c
+++ b/cputree.c
@@ -88,7 +88,8 @@ static void setup_banned_cpus(void)
goto cmdline;
if (getline(&line, &size, file) > 0) {
- cpulist_parse(line, size, nohz_full);
+ if (strlen(line) && line[0] != '\n')
+ cpulist_parse(line, strlen(line), nohz_full);
free(line);
line = NULL;
size = 0;
@@ -98,7 +99,8 @@ static void setup_banned_cpus(void)
file = fopen("/sys/devices/system/cpu/isolated", "r");
if (file) {
if (getline(&line, &size, file) > 0) {
- cpulist_parse(line, size, isolated_cpus);
+ if (strlen(line) && line[0] != '\n')
+ cpulist_parse(line, strlen(line), isolated_cpus);
free(line);
line = NULL;
size = 0;

26
SOURCES/irqbalance-1.0.8-Manpage-note-about-ignoring-of-pid-in-some-cases.patch

@ -0,0 +1,26 @@
From 6ae5196bc35b5bb64f80a4d64d11cd219e5d1fa0 Mon Sep 17 00:00:00 2001
From: Petr Holasek <pholasek@redhat.com>
Date: Wed, 10 Dec 2014 16:22:47 +0100
Subject: [PATCH] Manpage note about ignoring of --pid in some cases

Signed-off-by: Petr Holasek <pholasek@redhat.com>
---
irqbalance.1 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/irqbalance.1 b/irqbalance.1
index ceb4ae2..b6f451a 100644
--- a/irqbalance.1
+++ b/irqbalance.1
@@ -125,7 +125,7 @@ is identical to the --hintpolicy setting, but applied per irq
.B -s, --pid=<file>
Have irqbalance write its process id to the specified file. By default no
pidfile is written. The written pidfile is automatically unlinked when
-irqbalance exits.
+irqbalance exits. It is ignored when used with --debug or --foreground.
.SH "ENVIRONMENT VARIABLES"
.TP
--
2.1.0

27
SOURCES/irqbalance-1.0.8-Warning-when-irqbalance-hasn-t-root-privileges.patch

@ -0,0 +1,27 @@
From 1d7890db7ed4ef236103812a6b9fac0d86691154 Mon Sep 17 00:00:00 2001
From: Petr Holasek <pholasek@redhat.com>
Date: Wed, 10 Dec 2014 18:00:02 +0100
Subject: [PATCH] Warning when irqbalance hasn't root privileges

Signed-off-by: Petr Holasek <pholasek@redhat.com>
---
irqbalance.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/irqbalance.c b/irqbalance.c
index f22ecfb..bb8c3da 100644
--- a/irqbalance.c
+++ b/irqbalance.c
@@ -288,6 +288,9 @@ int main(int argc, char** argv)
} else
log(TO_CONSOLE, LOG_INFO, "This machine seems not NUMA capable.\n");
+ if (geteuid() != 0)
+ log(TO_ALL, LOG_WARNING, "Irqbalance hasn't been executed under root privileges, thus it won't in fact balance interrupts.\n");
+
if (banscript) {
char *note = "Please note that --banscript is deprecated, please use --policyscript instead";
log(TO_ALL, LOG_WARNING, "%s\n", note);
--
2.1.0

36
SOURCES/irqbalance-1.0.8-fix-cpulist_parse-definition-to-match-bitmap_parseli.patch

@ -0,0 +1,36 @@
From a1646032c65858c33904fa3c8135933446f4bc83 Mon Sep 17 00:00:00 2001
From: Rik van Riel <riel@redhat.com>
Date: Thu, 12 Mar 2015 17:47:00 -0400
Subject: [PATCH 2/3] fix cpulist_parse definition to match bitmap_parselist
and kernel

Nobody used cpulist_parse before, so nobody noticed that the parameters
for cpulist_parse and bitmap_parselist did not match the parameters
actually used by bitmap_parselist and related functions.

Signed-off-by: Rik van Riel <riel@redhat.com>
---
cpumask.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cpumask.h b/cpumask.h
index 001dda3..0774a88 100644
--- a/cpumask.h
+++ b/cpumask.h
@@ -281,10 +281,10 @@ static inline int __cpulist_scnprintf(char *buf, int len,
return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
}
-#define cpulist_parse(buf, dst) __cpulist_parse((buf), &(dst), NR_CPUS)
-static inline int __cpulist_parse(const char *buf, cpumask_t *dstp, int nbits)
+#define cpulist_parse(buf, len, dst) __cpulist_parse((buf), (len), &(dst), NR_CPUS)
+static inline int __cpulist_parse(const char *buf, int len, cpumask_t *dstp, int nbits)
{
- return bitmap_parselist(buf, dstp->bits, nbits);
+ return bitmap_parselist(buf, len, dstp->bits, nbits);
}
#define cpu_remap(oldbit, old, new) \
--
2.1.0

40
SOURCES/irqbalance-1.0.8-fix-memory-leak-in-classify-code.patch

@ -0,0 +1,40 @@
From 699deffdd881bf4759f3fcc4d6ee3e018e4c266e Mon Sep 17 00:00:00 2001
From: Tom Li <biergaizi2009@gmail.com>
Date: Fri, 18 Apr 2014 20:06:18 -0400
Subject: [PATCH] fix memory leak in classify code

If a system has no pci devices the opening of the pci bus directory in
rebuild_irq_db will fail, leading to a memory leak. Fix it by freeing the list
we create in that function always on exit

Reported-by: Tom Li <biergaizi2009@gmail.com>
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Tom Li <biergaizi2009@gmail.com>
---
classify.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/classify.c b/classify.c
index 1867a94..94b53b8 100644
--- a/classify.c
+++ b/classify.c
@@ -465,7 +465,7 @@ void rebuild_irq_db(void)
devdir = opendir(SYSDEV_DIR);
if (!devdir)
- return;
+ goto free;
do {
entry = readdir(devdir);
@@ -482,6 +482,7 @@ void rebuild_irq_db(void)
for_each_irq(tmp_irqs, add_missing_irq, NULL);
+free:
g_list_free_full(tmp_irqs, free);
}
--
2.4.3

141
SOURCES/irqbalance-1.0.8-import-__bitmap_parselist-from-Linux-kernel.patch

@ -0,0 +1,141 @@
From 976e741c59b64d51fec0b8c4f5c1c8d3cf8ed3be Mon Sep 17 00:00:00 2001
From: Rik van Riel <riel@redhat.com>
Date: Thu, 12 Mar 2015 17:47:00 -0400
Subject: [PATCH 1/3] import __bitmap_parselist from Linux kernel

Import __bitmap_parselist from the Linux kernel, in order to parse
CPU ranges as used in eg. the kernel isolcpus= commandline argument.

This code appears to have been in the Linux kernel since the initial
git import in 2005, so I do not have attribution of which changeset(s)
introduced it into the kernel.

Signed-off-by: Rik van Riel <riel@redhat.com>
---
bitmap.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bitmap.h | 10 ++++++--
2 files changed, 92 insertions(+), 2 deletions(-)

diff --git a/bitmap.c b/bitmap.c
index 2f44660..6a7421a 100644
--- a/bitmap.c
+++ b/bitmap.c
@@ -377,3 +377,87 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
return 0;
}
+
+/**
+ * __bitmap_parselist - convert list format ASCII string to bitmap
+ * @buf: read nul-terminated user string from this buffer
+ * @buflen: buffer size in bytes. If string is smaller than this
+ * then it must be terminated with a \0.
+ * @is_user: location of buffer, 0 indicates kernel space
+ * @maskp: write resulting mask here
+ * @nmaskbits: number of bits in mask to be written
+ *
+ * Input format is a comma-separated list of decimal numbers and
+ * ranges. Consecutively set bits are shown as two hyphen-separated
+ * decimal numbers, the smallest and largest bit numbers set in
+ * the range.
+ *
+ * Returns 0 on success, -errno on invalid input strings.
+ * Error values:
+ * %-EINVAL: second number in range smaller than first
+ * %-EINVAL: invalid character in string
+ * %-ERANGE: bit number specified too large for mask
+ */
+int __bitmap_parselist(const char *buf, unsigned int buflen,
+ int is_user __attribute((unused)), unsigned long *maskp,
+ int nmaskbits)
+{
+ int a, b, c, old_c, totaldigits;
+ int exp_digit, in_range;
+
+ totaldigits = c = 0;
+ bitmap_zero(maskp, nmaskbits);
+ do {
+ exp_digit = 1;
+ in_range = 0;
+ a = b = 0;
+
+ /* Get the next cpu# or a range of cpu#'s */
+ while (buflen) {
+ old_c = c;
+ c = *buf++;
+ buflen--;
+ if (isspace(c))
+ continue;
+
+ /*
+ * If the last character was a space and the current
+ * character isn't '\0', we've got embedded whitespace.
+ * This is a no-no, so throw an error.
+ */
+ if (totaldigits && c && isspace(old_c))
+ return -EINVAL;
+
+ /* A '\0' or a ',' signal the end of a cpu# or range */
+ if (c == '\0' || c == ',')
+ break;
+
+ if (c == '-') {
+ if (exp_digit || in_range)
+ return -EINVAL;
+ b = 0;
+ in_range = 1;
+ exp_digit = 1;
+ continue;
+ }
+
+ if (!isdigit(c))
+ return -EINVAL;
+
+ b = b * 10 + (c - '0');
+ if (!in_range)
+ a = b;
+ exp_digit = 0;
+ totaldigits++;
+ }
+ if (!(a <= b))
+ return -EINVAL;
+ if (b >= nmaskbits)
+ return -ERANGE;
+ while (a <= b) {
+ set_bit(a, maskp);
+ a++;
+ }
+ } while (buflen && c == ',');
+ return 0;
+}
diff --git a/bitmap.h b/bitmap.h
index 91ed499..7afce59 100644
--- a/bitmap.h
+++ b/bitmap.h
@@ -185,8 +185,8 @@ extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user,
unsigned long *dst, int nbits);
extern int bitmap_scnlistprintf(char *buf, unsigned int len,
const unsigned long *src, int nbits);
-extern int bitmap_parselist(const char *buf, unsigned long *maskp,
- int nmaskbits);
+extern int __bitmap_parselist(const char *buf, unsigned int buflen, int is_user,
+ unsigned long *dst, int nbits);
extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
const unsigned long *old, const unsigned long *new, int bits);
extern int bitmap_bitremap(int oldbit,
@@ -351,6 +351,12 @@ static inline int bitmap_parse(const char *buf, unsigned int buflen,
return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits);
}
+static inline int bitmap_parselist(const char *buf, unsigned int buflen,
+ unsigned long *maskp, int nmaskbits)
+{
+ return __bitmap_parselist(buf, buflen, 0, maskp, nmaskbits);
+}
+
#endif /* __ASSEMBLY__ */
#endif /* __LINUX_BITMAP_H */
--
2.1.0

82
SOURCES/irqbalance-1.0.8-irqbalance-signal-handling-tuning.patch

@ -0,0 +1,82 @@
From a37e7a0ab152fe6c88d49d8c99200f4d26672e63 Mon Sep 17 00:00:00 2001
From: Petr Holasek <pholasek@redhat.com>
Date: Wed, 10 Dec 2014 17:23:30 +0100
Subject: [PATCH] irqbalance signal handling tuning

Added sigaction for SIGTERM, SIGUSR1 and SIGUSR2 using the same handler
like SIGINT, i.e. stop and cleanup after finishing of current balancing
iteration.

Signed-off-by: Petr Holasek <pholasek@redhat.com>
---
irqbalance.c | 33 +++++++++++++++++++++++----------
1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/irqbalance.c b/irqbalance.c
index 670e688..f22ecfb 100644
--- a/irqbalance.c
+++ b/irqbalance.c
@@ -238,6 +238,15 @@ static void force_rescan(int signum)
int main(int argc, char** argv)
{
struct sigaction action, hupaction;
+ sigset_t sigset, old_sigset;
+
+ sigemptyset(&sigset);
+ sigaddset(&sigset,SIGINT);
+ sigaddset(&sigset,SIGHUP);
+ sigaddset(&sigset,SIGTERM);
+ sigaddset(&sigset,SIGUSR1);
+ sigaddset(&sigset,SIGUSR2);
+ sigprocmask(SIG_BLOCK, &sigset, &old_sigset);
#ifdef HAVE_GETOPT_LONG
parse_command_line(argc, argv);
@@ -290,11 +299,6 @@ int main(int argc, char** argv)
HZ = 100;
}
- action.sa_handler = handler;
- sigemptyset(&action.sa_mask);
- action.sa_flags = 0;
- sigaction(SIGINT, &action, NULL);
-
build_object_tree();
if (debug_mode)
dump_object_tree();
@@ -324,6 +328,20 @@ int main(int argc, char** argv)
}
}
+ action.sa_handler = handler;
+ sigemptyset(&action.sa_mask);
+ action.sa_flags = 0;
+ sigaction(SIGINT, &action, NULL);
+ sigaction(SIGTERM, &action, NULL);
+ sigaction(SIGUSR1, &action, NULL);
+ sigaction(SIGUSR2, &action, NULL);
+
+ hupaction.sa_handler = force_rescan;
+ sigemptyset(&hupaction.sa_mask);
+ hupaction.sa_flags = 0;
+ sigaction(SIGHUP, &hupaction, NULL);
+
+ sigprocmask(SIG_SETMASK, &old_sigset, NULL);
#ifdef HAVE_LIBCAP_NG
// Drop capabilities
@@ -337,11 +355,6 @@ int main(int argc, char** argv)
parse_proc_interrupts();
parse_proc_stat();
- hupaction.sa_handler = force_rescan;
- sigemptyset(&hupaction.sa_mask);
- hupaction.sa_flags = 0;
- sigaction(SIGHUP, &hupaction, NULL);
-
while (keep_going) {
sleep_approx(SLEEP_INTERVAL);
log(TO_CONSOLE, LOG_INFO, "\n\n\n-----------------------------------------------------------------------------\n");
--
2.1.0

96
SOURCES/irqbalance-1.0.8-parse-isolcpus-and-nohz-cpus-from-sysfs.patch

@ -0,0 +1,96 @@
diff -up irqbalance-1.0.7/cputree.c.orig irqbalance-1.0.7/cputree.c
--- irqbalance-1.0.7/cputree.c.orig 2016-01-09 20:15:41.928969895 +0100
+++ irqbalance-1.0.7/cputree.c 2016-01-09 20:16:23.502347264 +0100
@@ -59,8 +59,8 @@ cpumask_t cpu_possible_map;
cpumask_t unbanned_cpus;
/*
- * By default do not place IRQs on CPUs the kernel keeps isolated,
- * as specified through the isolcpus= boot commandline. Users can
+ * By default do not place IRQs on CPUs the kernel keeps isolated or
+ * nohz_full, as specified through the boot commandline. Users can
* override this with the IRQBALANCE_BANNED_CPUS environment variable.
*/
static void setup_banned_cpus(void)
@@ -69,7 +69,13 @@ static void setup_banned_cpus(void)
char *c, *line = NULL;
size_t size = 0;
const char *isolcpus = "isolcpus=";
+ const char *nohz_full_s = "nohz_full=";
char buffer[4096];
+ cpumask_t nohz_full;
+ cpumask_t isolated_cpus;
+
+ cpus_clear(isolated_cpus);
+ cpus_clear(nohz_full);
/* A manually specified cpumask overrides auto-detection. */
if (getenv("IRQBALANCE_BANNED_CPUS")) {
@@ -77,6 +83,33 @@ static void setup_banned_cpus(void)
goto out;
}
+ file = fopen("/sys/devices/system/cpu/nohz_full", "r");
+ if (!file)
+ goto cmdline;
+
+ if (getline(&line, &size, file) > 0) {
+ cpulist_parse(line, size, nohz_full);
+ free(line);
+ line = NULL;
+ size = 0;
+ }
+ fclose(file);
+
+ file = fopen("/sys/devices/system/cpu/isolated", "r");
+ if (file) {
+ if (getline(&line, &size, file) > 0) {
+ cpulist_parse(line, size, isolated_cpus);
+ free(line);
+ line = NULL;
+ size = 0;
+ }
+ fclose(file);
+ }
+
+ goto out2;
+
+ cmdline:
+
file = fopen("/proc/cmdline", "r");
if (!file)
goto out;
@@ -92,12 +125,31 @@ static void setup_banned_cpus(void)
for (end = c; *end != ' ' && *end != '\0' && *end != '\n'; end++);
len = end - c;
- cpulist_parse(c, len, banned_cpus);
+ cpulist_parse(c, len, isolated_cpus);
}
+ if ((c = strstr(line, nohz_full_s))) {
+ char *end;
+ int len;
+
+ c += strlen(nohz_full_s);
+ for (end = c; *end != ' ' && *end != '\0' && *end != '\n'; end++);
+ len = end - c;
+
+ cpulist_parse(c, len, nohz_full);
+ }
+
+ free(line);
+ fclose(file);
+
+ out2:
+ cpus_or(banned_cpus, nohz_full, isolated_cpus);
+
out:
- cpumask_scnprintf(buffer, 4096, banned_cpus);
+ cpumask_scnprintf(buffer, 4096, isolated_cpus);
log(TO_CONSOLE, LOG_INFO, "Isolated CPUs: %s\n", buffer);
+ cpumask_scnprintf(buffer, 4096, nohz_full);
+ log(TO_CONSOLE, LOG_INFO, "Adaptive-ticks CPUs: %s\n", buffer);
}
static struct topo_obj* add_cache_domain_to_package(struct topo_obj *cache,

101
SOURCES/irqbalance-1.0.8-parse-isolcpus-from-proc-cmdline-to-set-up-banned_cp.patch

@ -0,0 +1,101 @@
From ca5a3f13bf247561e64ef2323b3dd28a2c3b880d Mon Sep 17 00:00:00 2001
From: Rik van Riel <riel@redhat.com>
Date: Thu, 12 Mar 2015 17:47:00 -0400
Subject: [PATCH 3/3] parse isolcpus= from /proc/cmdline to set up banned_cpus

When the user specifies a range of CPUs to be isolated from system
tasks with isolcpus= on the kernel command line, it would be nice
if those CPUs could automatically be excluded from getting interrupts
routed to them, as well.

This patch does that, by looking at /proc/cmdline

The environment variable IRQBALANCE_BANNED_CPUS will override the
automatically detectable banned_cpus.

Signed-off-by: Rik van Riel <riel@redhat.com>
---
cputree.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
irqbalance.c | 4 ----
2 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/cputree.c b/cputree.c
index 8b8cf5e..cfa70b6 100644
--- a/cputree.c
+++ b/cputree.c
@@ -58,6 +58,48 @@ cpumask_t cpu_possible_map;
*/
cpumask_t unbanned_cpus;
+/*
+ * By default do not place IRQs on CPUs the kernel keeps isolated,
+ * as specified through the isolcpus= boot commandline. Users can
+ * override this with the IRQBALANCE_BANNED_CPUS environment variable.
+ */
+static void setup_banned_cpus(void)
+{
+ FILE *file;
+ char *c, *line = NULL;
+ size_t size = 0;
+ const char *isolcpus = "isolcpus=";
+ char buffer[4096];
+
+ /* A manually specified cpumask overrides auto-detection. */
+ if (getenv("IRQBALANCE_BANNED_CPUS")) {
+ cpumask_parse_user(getenv("IRQBALANCE_BANNED_CPUS"), strlen(getenv("IRQBALANCE_BANNED_CPUS")), banned_cpus);
+ goto out;
+ }
+
+ file = fopen("/proc/cmdline", "r");
+ if (!file)
+ goto out;
+
+ if (getline(&line, &size, file) <= 0)
+ goto out;
+
+ if ((c = strstr(line, isolcpus))) {
+ char *end;
+ int len;
+
+ c += strlen(isolcpus);
+ for (end = c; *end != ' ' && *end != '\0' && *end != '\n'; end++);
+ len = end - c;
+
+ cpulist_parse(c, len, banned_cpus);
+ }
+
+ out:
+ cpumask_scnprintf(buffer, 4096, banned_cpus);
+ log(TO_CONSOLE, LOG_INFO, "Isolated CPUs: %s\n", buffer);
+}
+
static struct topo_obj* add_cache_domain_to_package(struct topo_obj *cache,
int packageid, cpumask_t package_mask)
{
@@ -372,6 +414,8 @@ void parse_cpu_tree(void)
DIR *dir;
struct dirent *entry;
+ setup_banned_cpus();
+
cpus_complement(unbanned_cpus, banned_cpus);
dir = opendir("/sys/devices/system/cpu");
diff --git a/irqbalance.c b/irqbalance.c
index a5079b9..e4f3b93 100644
--- a/irqbalance.c
+++ b/irqbalance.c
@@ -276,10 +276,6 @@ int main(int argc, char** argv)
*/
openlog(argv[0], 0, LOG_DAEMON);
- if (getenv("IRQBALANCE_BANNED_CPUS")) {
- cpumask_parse_user(getenv("IRQBALANCE_BANNED_CPUS"), strlen(getenv("IRQBALANCE_BANNED_CPUS")), banned_cpus);
- }
-
if (getenv("IRQBALANCE_ONESHOT"))
one_shot_mode=1;
--
2.1.0

25
SOURCES/irqbalance-1.0.8-removing-unused-variable-cache_stat.patch

@ -0,0 +1,25 @@
From 854425506dc26d1e118122b2f87f1b7f5641ee35 Mon Sep 17 00:00:00 2001
From: Petr Holasek <pholasek@redhat.com>
Date: Wed, 10 Dec 2014 15:12:10 +0100
Subject: [PATCH] removing unused variable cache_stat

Signed-off-by: Petr Holasek <pholasek@redhat.com>
---
cputree.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/cputree.c b/cputree.c
index caedbb6..c56b1be 100644
--- a/cputree.c
+++ b/cputree.c
@@ -234,7 +234,6 @@ static void do_one_cpu(char *path)
cpu_set(cpu->number, cache_mask);
max_cache_index = 0;
cache_index = 1;
- cache_stat = 0;
do {
struct stat sb;
snprintf(new_path, PATH_MAX, "%s/cache/index%d/shared_cpu_map", path, cache_index);
--
2.1.0

152
SOURCES/irqbalance-1.0.8-separate-cmomand-line-banned-irqs.patch

@ -0,0 +1,152 @@
From 7f072d94c93174d30eb18426ee8f8727a9081c40 Mon Sep 17 00:00:00 2001
From: Neil Horman <nhorman@tuxdriver.com>
Date: Fri, 16 May 2014 10:10:36 -0400
Subject: [PATCH] irqbalance: separate cmomand line banned irqs from listed
banned irqs

irqbalance was using one list for tracking banned irqs, but the list was being
used for disperate pruposes in different places. It was tracking command line
banned irqs and irqs that were banned via banscript and policyscript. The
former needs to be remembered accross db rebuilds, while the latter needs to be
rebuilt every time. This patch separates the two in to two lists, so that we
don't stop banning command line specified irqs after the first db rebuild.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
---
classify.c | 38 +++++++++++++++++++++++++++++---------
irqbalance.c | 2 +-
irqbalance.h | 2 +-
3 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/classify.c b/classify.c
index 94b53b8..8c7d482 100644
--- a/classify.c
+++ b/classify.c
@@ -59,8 +59,9 @@ struct user_irq_policy {
int numa_node;
};
-static GList *interrupts_db;
-static GList *banned_irqs;
+static GList *interrupts_db = NULL;
+static GList *banned_irqs = NULL;
+static GList *cl_banned_irqs = NULL;
#define SYSDEV_DIR "/sys/bus/pci/devices"
@@ -72,13 +73,13 @@ static gint compare_ints(gconstpointer a, gconstpointer b)
return ai->irq - bi->irq;
}
-void add_banned_irq(int irq)
+void add_banned_irq(int irq, GList **list)
{
struct irq_info find, *new;
GList *entry;
find.irq = irq;
- entry = g_list_find_custom(banned_irqs, &find, compare_ints);
+ entry = g_list_find_custom(*list, &find, compare_ints);
if (entry)
return;
@@ -91,10 +92,16 @@ void add_banned_irq(int irq)
new->irq = irq;
new->flags |= IRQ_FLAG_BANNED;
- banned_irqs = g_list_append(banned_irqs, new);
+ *list = g_list_append(*list, new);
return;
}
+void add_cl_banned_irq(int irq)
+{
+ add_banned_irq(irq, &cl_banned_irqs);
+}
+
+
static int is_banned_irq(int irq)
{
GList *entry;
@@ -324,10 +331,23 @@ static int check_for_irq_ban(char *path, int irq)
{
char *cmd;
int rc;
+ struct irq_info find;
+ GList *entry;
+
+ /*
+ * Check to see if we banned this irq on the command line
+ */
+ find.irq = irq;
+ entry = g_list_find_custom(cl_banned_irqs, &find, compare_ints);
+ if (entry)
+ return 1;
if (!banscript)
return 0;
+ if (!path)
+ return 0;
+
cmd = alloca(strlen(path)+strlen(banscript)+32);
if (!cmd)
return 0;
@@ -382,7 +402,7 @@ static void build_one_dev_entry(const char *dirname)
continue;
get_irq_user_policy(devpath, irqnum, &pol);
if ((pol.ban == 1) || (check_for_irq_ban(devpath, irqnum))) {
- add_banned_irq(irqnum);
+ add_banned_irq(irqnum, &banned_irqs);
continue;
}
new = add_one_irq_to_db(devpath, irqnum, &pol);
@@ -411,7 +431,7 @@ static void build_one_dev_entry(const char *dirname)
goto done;
get_irq_user_policy(devpath, irqnum, &pol);
if ((pol.ban == 1) || (check_for_irq_ban(path, irqnum))) {
- add_banned_irq(irqnum);
+ add_banned_irq(irqnum, &banned_irqs);
goto done;
}
@@ -497,8 +517,8 @@ struct irq_info *add_new_irq(int irq, struct irq_info *hint)
return NULL;
get_irq_user_policy("/sys", irq, &pol);
- if (pol.ban == 1) {
- add_banned_irq(irq);
+ if ((pol.ban == 1) || check_for_irq_ban(NULL, irq)) {
+ add_banned_irq(irq, &banned_irqs);
new = get_irq_info(irq);
} else
new = add_one_irq_to_db("/sys", irq, &pol);
diff --git a/irqbalance.c b/irqbalance.c
index 2532242..e0b3cbe 100644
--- a/irqbalance.c
+++ b/irqbalance.c
@@ -151,7 +151,7 @@ static void parse_command_line(int argc, char **argv)
usage();
exit(1);
}
- add_banned_irq((int)val);
+ add_cl_banned_irq((int)val);
break;
case 'l':
polscript = strdup(optarg);
diff --git a/irqbalance.h b/irqbalance.h
index 04cf9d8..cb648a5 100644
--- a/irqbalance.h
+++ b/irqbalance.h
@@ -106,7 +106,7 @@ extern int get_cpu_count(void);
*/
extern void rebuild_irq_db(void);
extern void free_irq_db(void);
-extern void add_banned_irq(int irq);
+extern void add_cl_banned_irq(int irq);
extern void for_each_irq(GList *list, void (*cb)(struct irq_info *info, void *data), void *data);
extern struct irq_info *get_irq_info(int irq);
extern void migrate_irq(GList **from, GList **to, struct irq_info *info);
--
2.4.3

30
SOURCES/irqbalance-1.0.9-irqbalance-set-IRQBALANCE_DEBUG-variable-implies-for.patch

@ -0,0 +1,30 @@
From a0811c1ad96236fefc8eebe7a79a9b86ee654892 Mon Sep 17 00:00:00 2001
From: Petr Holasek <pholasek@redhat.com>
Date: Thu, 19 Mar 2015 14:58:35 +0100
Subject: [PATCH 1/1] irqbalance: set IRQBALANCE_DEBUG variable implies
foreground mode

Signed-off-by: Petr Holasek <pholasek@redhat.com>
---
irqbalance.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/irqbalance.c b/irqbalance.c
index 29967ba..226fcc6 100644
--- a/irqbalance.c
+++ b/irqbalance.c
@@ -269,8 +269,10 @@ int main(int argc, char** argv)
if (getenv("IRQBALANCE_ONESHOT"))
one_shot_mode=1;
- if (getenv("IRQBALANCE_DEBUG"))
+ if (getenv("IRQBALANCE_DEBUG")) {
debug_mode=1;
+ foreground_mode=1;
+ }
/*
* If we are't in debug mode, don't dump anything to the console
--
2.12.2

26
SOURCES/irqbalance-node-package.patch

@ -0,0 +1,26 @@
diff --git a/cputree.c b/cputree.c
index 4d09c0e..0f14cfb 100644
--- a/cputree.c
+++ b/cputree.c
@@ -357,6 +357,8 @@ static void do_one_cpu(char *path)
nodeid=-1;
if (numa_avail) {
+ struct topo_obj *node;
+
dir = opendir(path);
do {
entry = readdir(dir);
@@ -368,6 +370,12 @@ static void do_one_cpu(char *path)
}
} while (entry);
closedir(dir);
+
+ node = get_numa_node(nodeid);
+ if (node && (cpus_weight(package_mask) > cpus_weight(node->mask))) {
+ cpus_and(package_mask, package_mask, node->mask);
+ packageid = nodeid;
+ }
}
/*

28
SOURCES/irqbalance.sysconfig

@ -0,0 +1,28 @@
# irqbalance is a daemon process that distributes interrupts across
# CPUS on SMP systems. The default is to rebalance once every 10
# seconds. This is the environment file that is specified to systemd via the
# EnvironmentFile key in the service unit file (or via whatever method the init
# system you're using has.
#
# ONESHOT=yes
# after starting, wait for a minute, then look at the interrupt
# load and balance it once; after balancing exit and do not change
# it again.
#IRQBALANCE_ONESHOT=

#
# IRQBALANCE_BANNED_CPUS
# 64 bit bitmask which allows you to indicate which cpu's should
# be skipped when reblancing irqs. Cpu numbers which have their
# corresponding bits set to one in this mask will not have any
# irq's assigned to them on rebalance
#
#IRQBALANCE_BANNED_CPUS=

#
# IRQBALANCE_ARGS
# append any args here to the irqbalance daemon as documented in the man page
#
#IRQBALANCE_ARGS=


390
SPECS/irqbalance.spec

@ -0,0 +1,390 @@
Name: irqbalance
Version: 1.0.7
Release: 11%{?dist}
Epoch: 3
Summary: IRQ balancing daemon

Group: System Environment/Base
License: GPLv2
Url: https://github.com/Irqbalance/irqbalance
Source0: https://github.com/Irqbalance/irqbalance/archive/v%{version}.tar.gz
Source1: irqbalance.sysconfig

BuildRequires: autoconf automake libtool libcap-ng
BuildRequires: glib2-devel pkgconfig libcap-ng-devel
%ifnarch %{arm}
BuildRequires: numactl-devel
BuildRequires: systemd-units
Requires: numactl-libs
%endif
Requires(post): systemd-units
Requires(postun):systemd-units
Requires(preun):systemd-units
#Requires(triggerun):systemd-units

%define _hardened_build 1

ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 ppc64le %{arm} aarch64

Patch1: irqbalance-1.0.4-env-file-path.patch
Patch2: irqbalance-1.0.6-man_IRQBALANCE_BANNED_CPUS.patch
Patch3: irqbalance-1.0.7-ignore_affinity_hint.patch
Patch4: irqbalance-1.0.8-removing-unused-variable-cache_stat.patch
Patch5: irqbalance-1.0.8-Manpage-note-about-ignoring-of-pid-in-some-cases.patch
Patch6: irqbalance-1.0.8-irqbalance-signal-handling-tuning.patch
Patch7: irqbalance-1.0.8-Warning-when-irqbalance-hasn-t-root-privileges.patch
Patch8: irqbalance-1.0.7-manpage-hostname.patch
Patch9: irqbalance-1.0.8-import-__bitmap_parselist-from-Linux-kernel.patch
Patch10:irqbalance-1.0.8-fix-cpulist_parse-definition-to-match-bitmap_parseli.patch
Patch11:irqbalance-1.0.8-parse-isolcpus-from-proc-cmdline-to-set-up-banned_cp.patch
Patch12:irqbalance-1.0.8-fix-memory-leak-in-classify-code.patch
Patch13:irqbalance-1.0.8-separate-cmomand-line-banned-irqs.patch
Patch14:irqbalance-1.0.8-parse-isolcpus-and-nohz-cpus-from-sysfs.patch
Patch15:irqbalance-1.0.8-Invalid-parsing-for-isolated-and-nohz_full-cpu-masks.patch
Patch16:irqbalance-1.0.9-irqbalance-set-IRQBALANCE_DEBUG-variable-implies-for.patch
Patch17:irqbalance-node-package.patch
Patch18:irqbalance-1.0.8-Balance-correctly-IRQs-reappearing.patch

%description
irqbalance is a daemon that evenly distributes IRQ load across
multiple CPUs for enhanced performance.

%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1

%build
./autogen.sh
%{configure}
CFLAGS="%{optflags}" make %{?_smp_mflags}

%install
install -D -p -m 0755 %{name} %{buildroot}%{_sbindir}/%{name}
install -D -p -m 0644 ./misc/irqbalance.service %{buildroot}%{_unitdir}/irqbalance.service
install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/sysconfig/%{name}

install -d %{buildroot}%{_mandir}/man1/
install -p -m 0644 ./irqbalance.1 %{buildroot}%{_mandir}/man1/

%files
%defattr(-,root,root)
%doc COPYING AUTHORS
%{_sbindir}/irqbalance
%{_unitdir}/irqbalance.service
%{_mandir}/man1/*
%config(noreplace) %{_sysconfdir}/sysconfig/irqbalance

%post
%systemd_post irqbalance.service

%preun
%systemd_preun irqbalance.service

%postun
%systemd_postun_with_restart irqbalance.service

%triggerun -- irqbalance < 2:0.56-3
if /sbin/chkconfig --level 3 irqbalance ; then
/bin/systemctl enable irqbalance.service >/dev/null 2>&1 || :
fi
/sbin/chkconfig --del irqbalance >/dev/null 2>&1 || :

%changelog
* Mon Feb 05 2018 Petr Oros <poros@redhat.com> - 3:1.0.7-11
- Balance correctly IRQs reappearing
- Resolves: #1536373

* Tue May 16 2017 Petr Oros <poros@redhat.com> - 3:1.0.7-10
- irqbalance node package patch
- Resolves: #1444195

* Tue Apr 4 2017 Petr Oros <poros@redhat.com> - 3:1.0.7-9
- set IRQBALANCE_DEBUG variable implies foreground mode
- Resolves: #1361211

* Tue Dec 20 2016 Petr Oros <poros@redhat.com> - 3:1.0.7-8
- Fix Epoch in version
- Resolves: #1393539

* Wed Nov 30 2016 Petr Oros <poros@redhat.com> - 2:1.0.7-7
- Fix Invalid parsing for isolated and nohz_full cpu masks
- Resolves: #1393539

* Tue Feb 02 2016 Petr Holasek <pholasek@redhat.com> - 2:1.0.7-6
- nohz and isolated cpus are read from sysfs (#1264130)

* Mon Jul 13 2015 Petr Holasek <pholasek@redhat.com> - 2:1.0.7-5
- banned irqs aren't touched (#1237356)

* Fri Jun 12 2015 Petr Holasek <pholasek@redhat.com> - 2:1.0.7-4
- fixed memory leak in pci bus parsing code (#1225319)

* Tue May 05 2015 Petr Holasek <pholasek@redhat.com> - 2:1.0.7-3
- fixed putting irqs on isolated cpus (#1201552)

* Tue Jan 06 2015 Petr Holasek <pholasek@redhat.com> - 2:1.0.7-2
- fixed unused variable revealed by covscan
- fixed ignored pid argument (#1155632)
- warning when irqbalance started under non-root (#1155799)
- more robust signal handling (#1158937)
- fixed hostname in manpage (#1162251)

* Tue Aug 19 2014 Petr Holasek <pholasek@redhat.com> - 2:1.0.7-1
- Rebased to version 1.0.7 (#1018140)

* Mon Aug 04 2014 Petr Holasek <pholasek@redhat.com> - 2:1.0.6-7
- ppc64le has been added to exclusive archs (#1125551)

* Tue Jul 29 2014 Petr Holasek <pholasek@redhat.com> - 2:1.0.6-6
- aarch64 has been added to exclusive archs (#1055729)

* Mon Feb 10 2014 Petr Holasek <pholasek@redhat.com> - 2:1.0.6-5
- Fixed irqbalance web adresses in spec (bz1060810)
- Default hintpolicy adjusted (bz1060814)
- Missing autogen.sh call fixed

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 2:1.0.6-4
- Mass rebuild 2013-12-27

* Thu Oct 31 2013 Petr Holasek <pholasek@redhat.com> - 2:1.0.6-3
- Fixed env variable man page description (bz1020633)

* Tue Sep 10 2013 Petr Holasek <pholasek@redhat.com> - 2:1.0.6-2
- Fixed CPU hotplug/hotunplug sigsegv (bz998494)

* Mon Aug 12 2013 Petr Holasek <pholasek@redhat.com> - 2:1.0.6-1
- Rebased to version 1.0.6 (bz996171)

* Tue Jul 30 2013 Petr Holasek <pholasek@redhat.com> - 2:1.0.5-5
- Man page and --help output were fixed (bz948372)

* Fri Jul 26 2013 Petr Holasek <pholasek@redhat.com> - 2:1.0.5-4
- Hardened build

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:1.0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Mon Jan 21 2013 Petr Holasek <pholasek@redhat.com> - 2:1.0.5-1
- Rebased to version 1.0.5

* Wed Aug 29 2012 Petr Holasek <pholasek@redhat.com> - 2:1.0.4-2
- Env file path edited

* Mon Aug 27 2012 Petr Holasek <pholasek@redhat.com> - 2:1.0.4-1
- Rebased to version 1.0.4

* Wed Aug 22 2012 Petr Holasek <pholasek@redhat.com> - 2:1.0.3-5
- Make irqbalance scan for new irqs when it detects new irqs (bz832815)
- Fixes SIGFPE crash for some banning configuration (bz849792)
- Fixes affinity_hint values processing (bz832815)
- Adds banirq and bansript options (bz837049)
- imake isn't needed for building any more (bz844359)
- Fixes clogging of syslog (bz837646)
- Added IRQBALANCE_ARGS variable for passing arguments via systemd(bz837048)
- Fixes --hint-policy=subset behavior (bz844381)

* Sun Apr 15 2012 Petr Holasek <pholasek@redhat.com> - 2:1.0.3-4
- Updated libnuma dependencies

* Sun Feb 5 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 2:1.0.3-3
- Build on ARM

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:1.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Fri Dec 02 2011 Neil Horman <nhorman@redhat.com> - 2:1.0.3-1
- Updated to latest upstream release

* Fri Nov 04 2011 Neil Horman <nhorman@redhat.com> - 2:1.0.2-1
- Updated to latest upstream release

* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:1.0-4
- Rebuilt for glibc bug#747377

* Fri Oct 21 2011 Neil Horman <nhorman@redhat.com> - 2:1.0-3
- Fix another crash on non-numa systems (bz 748070)

* Mon Oct 17 2011 Neil Horman <nhorman@redhat.com> - 2:1.0-2
- Fix crash for systems with no numa node support

* Wed Oct 12 2011 Neil Horman <nhorman@redhat.com> - 2:1.0-1
- Update irqbalance to latest upstream version

* Fri May 6 2011 Bill Nottingham <notting@redhat.com> - 2:0.56-4
- fix upgrade trigger

* Fri Apr 8 2011 Peter Robinson <pbrobinson@gmail.com> - 2:0.56-3
- Fix build in rawhide
- Add license file to rpm
- Cleanup spec file

* Fri Mar 25 2011 Anton Arapov <anton@redhat.com> - 2:0.56-3
- rework init in order to respect systemd. (bz 659622)

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:0.56-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Thu Jun 10 2010 Neil Horman <nhorman@redhat.com> - 2:0.56-1
- Updated to latest upstream version

* Wed Sep 09 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-25
- Fixing BuildRequires

* Fri Sep 04 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-24
- Fixing irqbalance initscript (bz 521246)

* Wed Sep 02 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-23
- Fixing BuildRequires for new config script

* Tue Sep 01 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-22
- Fixing BuildRequires for new config script

* Tue Sep 01 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-21
- Fixing BuildRequires for new config script

* Tue Sep 01 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-20
- Fixing BuildRequires for new config script

* Tue Sep 01 2009 Neil Horman <nhorman@redhat.com> - 2:0.55-19
- Incorporate capng (bz 520699)

* Fri Jul 31 2009 Peter Lemenkov <lemenkov@gmail.com> - 2:0.55-18
- Added back accidentaly forgotten imake

* Fri Jul 31 2009 Peter Lemenkov <lemenkov@gmail.com> - 2:0.55-17
- Cosmetic fixes in spec-file
- Fixed rpmlint error in the init-script

* Tue Jul 28 2009 Peter Lemenkov <lemenkov@gmail.com> - 2:0.55-16
- Many imrovements in spec-file

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:0.55-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Fri Mar 6 2009 Neil Horman <nhorman@redhat.com>
- Update spec file to build for i586 as per new build guidelines (bz 488849)

* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:0.55-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Fri Dec 12 2008 Neil Norman <nhorman@redhat.com> - 2:0.55-12
- Remove odd Netorking dependence from irqbalance (bz 476179)

* Fri Aug 01 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:0.55-11
- fix license tag

* Wed Jun 04 2008 Neil Horman <nhorman@redhat.com> - 2:0.55-10
- Update man page to explain why irqbalance exits on single cache (bz 449949)

* Tue Mar 18 2008 Neil Horman <nhorman@redhat.com> - 2:0.55-9
- Rediff pid-file patch to not remove initial parse_cpu_tree (bz 433270)

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2:0.55-8
- Autorebuild for GCC 4.3

* Thu Nov 01 2007 Neil Horman <nhorman@redhat.com> - 2:0.55-7
- Update to properly hadndle pid files (bz 355231)

* Thu Oct 04 2007 Neil Horman <nhorman@redhat.com> - 2:0.55-6
- Fix irqbalance init script (bz 317219)

* Fri Sep 28 2007 Neil Horman <nhorman@redhat.com> - 2:0.55-5
- Install pie patch
- Grab Ulis cpuparse cleanup (bz 310821)

* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 2:0.55-4
- Rebuild for selinux ppc32 issue.

* Thu Jul 05 2007 Neil Horman <nhorman@redhat.com> - 0.55.3
- Fixing LSB requirements (bz 246959)

* Tue Dec 12 2006 Neil Horman <nhorman@redhat.com> - 0.55-2
- Fixing typos in spec file (bz 219301)

* Tue Dec 12 2006 Neil Horman <nhorman@redhat.com> - 0.55-1
- Updating to version 0.55

* Mon Dec 11 2006 Neil Horman <nhorman@redhat.com> - 0.54-1
- Update irqbalance to new version released at www.irqbalance.org

* Wed Nov 15 2006 Neil Horman <nhorman@redhat.com> - 1.13-8
- Add ability to set default affinity mask (bz 211148)

* Wed Nov 08 2006 Neil Horman <nhorman@redhat.com> - 1.13-7
- fix up irqbalance to detect multicore (not ht) (bz 211183)

* Thu Nov 02 2006 Neil Horman <nhorman@redhat.com> - 1.13-6
- bumping up MAX_INTERRUPTS to support xen kernels
- rediffing patch1 and patch3 to remove fuzz

* Tue Oct 17 2006 Neil Horman <nhorman@redhat.com> - 1.13-5
- Making oneshot mean oneshot always (bz 211178)

* Wed Sep 13 2006 Peter Jones <pjones@redhat.com> - 1.13-4
- Fix subsystem locking

* Fri Aug 18 2006 Jesse Keating <jkeating@redhat.com> - 1.13-2
- rebuilt with latest binutils to pick up 64K -z commonpagesize on ppc*
(#203001)
- Remove hack to use cvs checkin ID as release as it doesn't follow
packaging guidelines

* Tue Aug 01 2006 Neil Horman <nhorman@redhat.com>
- Change license to GPL in version 0.13

* Sat Jul 29 2006 Dave Jones <davej@redhat.com>
- identify a bunch more classes.

* Fri Jul 14 2006 Jesse Keating <jkeating@redhat.com>
- rebuild

* Tue Jul 11 2006 Dave Jones <davej@redhat.com>
- Further lazy rebalancing tweaks.

* Sun Feb 26 2006 Dave Jones <davej@redhat.com>
- Don't rebalance IRQs where no interrupts have occured.

* Sun Feb 12 2006 Dave Jones <davej@redhat.com>
- Build for ppc[64] too.

* Thu Feb 09 2006 Dave Jones <davej@redhat.com>
- rebuild.

* Fri Dec 16 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt for new gcj

* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt

* Tue Mar 1 2005 Dave Jones <davej@redhat.com>
- Rebuild with gcc4

* Tue Feb 8 2005 Dave Jones <davej@redhat.com>
- Build as pie, also -D_FORTIFY_SOURCE=2

* Tue Jan 11 2005 Dave Jones <davej@redhat.com>
- Add missing Obsoletes: kernel-utils.

* Mon Jan 10 2005 Dave Jones <davej@redhat.com>
- Start irqbalance in runlevel 2 too. (#102064)

* Sat Dec 18 2004 Dave Jones <davej@redhat.com>
- Initial packaging, based on kernel-utils.

Loading…
Cancel
Save