basebuilder_pel7ppc64bebuilder0
6 years ago
20 changed files with 1325 additions and 0 deletions
@ -0,0 +1,12 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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