basebuilder_pel7ppc64bebuilder0
6 years ago
20 changed files with 1325 additions and 0 deletions
@ -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] |
@ -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 |
@ -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; |
@ -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 |
||||||
|
|
||||||
|
|
@ -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 |
||||||
|
|
@ -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; |
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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, |
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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 |
||||||
|
|
@ -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; |
||||||
|
+ } |
||||||
|
} |
||||||
|
|
||||||
|
/* |
@ -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= |
||||||
|
|
||||||
|
|
@ -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…
Reference in new issue