* [PATCH] x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap
@ 2015-09-26 12:47 Denys Vlasenko
2015-09-26 12:47 ` [PATCH] cpufreq: p4-clockmod: " Denys Vlasenko
2015-09-29 8:36 ` [tip:x86/debug] x86/kgdb: " tip-bot for Denys Vlasenko
0 siblings, 2 replies; 7+ messages in thread
From: Denys Vlasenko @ 2015-09-26 12:47 UTC (permalink / raw)
To: Jason Wessel, Ingo Molnar
Cc: Denys Vlasenko, H. Peter Anvin, x86, linux-kernel
Straigntforward conversion from
int was_in_debug_nmi[NR_CPUS]
to
DECLARE_BITMAP(was_in_debug_nmi, NR_CPUS)
Saves about 2 kbytes in bss for NR_CPUS=512.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
CC: Jason Wessel <jason.wessel@windriver.com>
CC: Ingo Molnar <mingo@kernel.org>
CC: H. Peter Anvin <hpa@zytor.com>
CC: x86@kernel.org
CC: linux-kernel@vger.kernel.org
---
arch/x86/kernel/kgdb.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index d6178d9..dd0a003 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -511,24 +511,27 @@ single_step_cont(struct pt_regs *regs, struct die_args *args)
return NOTIFY_STOP;
}
-static int was_in_debug_nmi[NR_CPUS];
+static DECLARE_BITMAP(was_in_debug_nmi, NR_CPUS);
static int kgdb_nmi_handler(unsigned int cmd, struct pt_regs *regs)
{
+ int cpu;
+
switch (cmd) {
case NMI_LOCAL:
if (atomic_read(&kgdb_active) != -1) {
/* KGDB CPU roundup */
- kgdb_nmicallback(raw_smp_processor_id(), regs);
- was_in_debug_nmi[raw_smp_processor_id()] = 1;
+ cpu = raw_smp_processor_id();
+ kgdb_nmicallback(cpu, regs);
+ set_bit(cpu, was_in_debug_nmi);
touch_nmi_watchdog();
return NMI_HANDLED;
}
break;
case NMI_UNKNOWN:
- if (was_in_debug_nmi[raw_smp_processor_id()]) {
- was_in_debug_nmi[raw_smp_processor_id()] = 0;
+ cpu = raw_smp_processor_id();
+ if (__test_and_clear_bit(cpu, was_in_debug_nmi)) {
return NMI_HANDLED;
}
break;
--
1.8.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH] cpufreq: p4-clockmod: Replace bool_int_array[NR_CPUS] with bitmap 2015-09-26 12:47 [PATCH] x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap Denys Vlasenko @ 2015-09-26 12:47 ` Denys Vlasenko 2015-09-26 22:07 ` Viresh Kumar 2015-09-27 16:10 ` Jean Delvare 2015-09-29 8:36 ` [tip:x86/debug] x86/kgdb: " tip-bot for Denys Vlasenko 1 sibling, 2 replies; 7+ messages in thread From: Denys Vlasenko @ 2015-09-26 12:47 UTC (permalink / raw) To: Viresh Kumar, Rafael J. Wysocki Cc: Denys Vlasenko, Ingo Molnar, Bartosz Golaszewski, H. Peter Anvin, Benoit Cousson, Fenghua Yu, Guenter Roeck, Jean Delvare, Jonathan Corbet, Peter Zijlstra, Thomas Gleixner, x86, linux-kernel Straigntforward conversion from int has_N44_O17_errata[NR_CPUS] to DECLARE_BITMAP(has_N44_O17_errata, NR_CPUS) Saves about 2 kbytes in bss for NR_CPUS=512. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com> CC: Viresh Kumar <viresh.kumar@linaro.org> CC: Rafael J. Wysocki <rjw@rjwysocki.net> CC: Ingo Molnar <mingo@kernel.org> CC: Bartosz Golaszewski <bgolaszewski@baylibre.com> CC: H. Peter Anvin <hpa@zytor.com> CC: Benoit Cousson <bcousson@baylibre.com> CC: Fenghua Yu <fenghua.yu@intel.com> CC: Guenter Roeck <linux@roeck-us.net> CC: Jean Delvare <jdelvare@suse.de> CC: Jonathan Corbet <corbet@lwn.net> CC: Peter Zijlstra <peterz@infradead.org> CC: Thomas Gleixner <tglx@linutronix.de> CC: x86@kernel.org CC: linux-kernel@vger.kernel.org --- drivers/cpufreq/p4-clockmod.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c index 5dd95da..dd15810 100644 --- a/drivers/cpufreq/p4-clockmod.c +++ b/drivers/cpufreq/p4-clockmod.c @@ -49,7 +49,7 @@ enum { #define DC_ENTRIES 8 -static int has_N44_O17_errata[NR_CPUS]; +static DECLARE_BITMAP(has_N44_O17_errata, NR_CPUS); static unsigned int stock_freq; static struct cpufreq_driver p4clockmod_driver; static unsigned int cpufreq_p4_get(unsigned int cpu); @@ -66,7 +66,7 @@ static int cpufreq_p4_setdc(unsigned int cpu, unsigned int newstate) if (l & 0x01) pr_debug("CPU#%d currently thermal throttled\n", cpu); - if (has_N44_O17_errata[cpu] && + if (test_bit(cpu, has_N44_O17_errata) && (newstate == DC_25PT || newstate == DC_DFLT)) newstate = DC_38PT; @@ -182,7 +182,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy) case 0x0f0a: case 0x0f11: case 0x0f12: - has_N44_O17_errata[policy->cpu] = 1; + set_bit(policy->cpu, has_N44_O17_errata); pr_debug("has errata -- disabling low frequencies\n"); } @@ -199,7 +199,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy) /* table init */ for (i = 1; (p4clockmod_table[i].frequency != CPUFREQ_TABLE_END); i++) { - if ((i < 2) && (has_N44_O17_errata[policy->cpu])) + if ((i < 2) && test_bit(policy->cpu, has_N44_O17_errata)) p4clockmod_table[i].frequency = CPUFREQ_ENTRY_INVALID; else p4clockmod_table[i].frequency = (stock_freq * i)/8; -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] cpufreq: p4-clockmod: Replace bool_int_array[NR_CPUS] with bitmap 2015-09-26 12:47 ` [PATCH] cpufreq: p4-clockmod: " Denys Vlasenko @ 2015-09-26 22:07 ` Viresh Kumar 2015-09-27 16:10 ` Jean Delvare 1 sibling, 0 replies; 7+ messages in thread From: Viresh Kumar @ 2015-09-26 22:07 UTC (permalink / raw) To: Denys Vlasenko Cc: Rafael J. Wysocki, Ingo Molnar, Bartosz Golaszewski, H. Peter Anvin, Benoit Cousson, Fenghua Yu, Guenter Roeck, Jean Delvare, Jonathan Corbet, Peter Zijlstra, Thomas Gleixner, x86, linux-kernel On 26-09-15, 14:47, Denys Vlasenko wrote: > Straigntforward conversion from > int has_N44_O17_errata[NR_CPUS] > to > DECLARE_BITMAP(has_N44_O17_errata, NR_CPUS) > > Saves about 2 kbytes in bss for NR_CPUS=512. > > Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com> > CC: Viresh Kumar <viresh.kumar@linaro.org> > CC: Rafael J. Wysocki <rjw@rjwysocki.net> > CC: Ingo Molnar <mingo@kernel.org> > CC: Bartosz Golaszewski <bgolaszewski@baylibre.com> > CC: H. Peter Anvin <hpa@zytor.com> > CC: Benoit Cousson <bcousson@baylibre.com> > CC: Fenghua Yu <fenghua.yu@intel.com> > CC: Guenter Roeck <linux@roeck-us.net> > CC: Jean Delvare <jdelvare@suse.de> > CC: Jonathan Corbet <corbet@lwn.net> > CC: Peter Zijlstra <peterz@infradead.org> > CC: Thomas Gleixner <tglx@linutronix.de> > CC: x86@kernel.org > CC: linux-kernel@vger.kernel.org > --- > drivers/cpufreq/p4-clockmod.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c > index 5dd95da..dd15810 100644 > --- a/drivers/cpufreq/p4-clockmod.c > +++ b/drivers/cpufreq/p4-clockmod.c > @@ -49,7 +49,7 @@ enum { > #define DC_ENTRIES 8 > > > -static int has_N44_O17_errata[NR_CPUS]; > +static DECLARE_BITMAP(has_N44_O17_errata, NR_CPUS); > static unsigned int stock_freq; > static struct cpufreq_driver p4clockmod_driver; > static unsigned int cpufreq_p4_get(unsigned int cpu); > @@ -66,7 +66,7 @@ static int cpufreq_p4_setdc(unsigned int cpu, unsigned int newstate) > if (l & 0x01) > pr_debug("CPU#%d currently thermal throttled\n", cpu); > > - if (has_N44_O17_errata[cpu] && > + if (test_bit(cpu, has_N44_O17_errata) && > (newstate == DC_25PT || newstate == DC_DFLT)) > newstate = DC_38PT; > > @@ -182,7 +182,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy) > case 0x0f0a: > case 0x0f11: > case 0x0f12: > - has_N44_O17_errata[policy->cpu] = 1; > + set_bit(policy->cpu, has_N44_O17_errata); > pr_debug("has errata -- disabling low frequencies\n"); > } > > @@ -199,7 +199,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy) > > /* table init */ > for (i = 1; (p4clockmod_table[i].frequency != CPUFREQ_TABLE_END); i++) { > - if ((i < 2) && (has_N44_O17_errata[policy->cpu])) > + if ((i < 2) && test_bit(policy->cpu, has_N44_O17_errata)) > p4clockmod_table[i].frequency = CPUFREQ_ENTRY_INVALID; > else > p4clockmod_table[i].frequency = (stock_freq * i)/8; Acked-by: Viresh Kumar <viresh.kumar@linaro.org> -- viresh ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] cpufreq: p4-clockmod: Replace bool_int_array[NR_CPUS] with bitmap 2015-09-26 12:47 ` [PATCH] cpufreq: p4-clockmod: " Denys Vlasenko 2015-09-26 22:07 ` Viresh Kumar @ 2015-09-27 16:10 ` Jean Delvare 2015-09-27 17:58 ` Denys Vlasenko 1 sibling, 1 reply; 7+ messages in thread From: Jean Delvare @ 2015-09-27 16:10 UTC (permalink / raw) To: Denys Vlasenko Cc: Viresh Kumar, Rafael J. Wysocki, Ingo Molnar, Bartosz Golaszewski, H. Peter Anvin, Benoit Cousson, Fenghua Yu, Guenter Roeck, Jonathan Corbet, Peter Zijlstra, Thomas Gleixner, x86, linux-kernel Hi Denys, On Sat, 26 Sep 2015 14:47:18 +0200, Denys Vlasenko wrote: > Straigntforward conversion from > int has_N44_O17_errata[NR_CPUS] > to > DECLARE_BITMAP(has_N44_O17_errata, NR_CPUS) > > Saves about 2 kbytes in bss for NR_CPUS=512. > > Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com> > CC: Viresh Kumar <viresh.kumar@linaro.org> > CC: Rafael J. Wysocki <rjw@rjwysocki.net> > CC: Ingo Molnar <mingo@kernel.org> > CC: Bartosz Golaszewski <bgolaszewski@baylibre.com> > CC: H. Peter Anvin <hpa@zytor.com> > CC: Benoit Cousson <bcousson@baylibre.com> > CC: Fenghua Yu <fenghua.yu@intel.com> > CC: Guenter Roeck <linux@roeck-us.net> > CC: Jean Delvare <jdelvare@suse.de> > CC: Jonathan Corbet <corbet@lwn.net> > CC: Peter Zijlstra <peterz@infradead.org> > CC: Thomas Gleixner <tglx@linutronix.de> > CC: x86@kernel.org > CC: linux-kernel@vger.kernel.org > --- > drivers/cpufreq/p4-clockmod.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c > index 5dd95da..dd15810 100644 > --- a/drivers/cpufreq/p4-clockmod.c > +++ b/drivers/cpufreq/p4-clockmod.c > @@ -49,7 +49,7 @@ enum { > #define DC_ENTRIES 8 > > > -static int has_N44_O17_errata[NR_CPUS]; > +static DECLARE_BITMAP(has_N44_O17_errata, NR_CPUS); > static unsigned int stock_freq; > static struct cpufreq_driver p4clockmod_driver; > static unsigned int cpufreq_p4_get(unsigned int cpu); > @@ -66,7 +66,7 @@ static int cpufreq_p4_setdc(unsigned int cpu, unsigned int newstate) > if (l & 0x01) > pr_debug("CPU#%d currently thermal throttled\n", cpu); > > - if (has_N44_O17_errata[cpu] && > + if (test_bit(cpu, has_N44_O17_errata) && > (newstate == DC_25PT || newstate == DC_DFLT)) > newstate = DC_38PT; > > @@ -182,7 +182,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy) > case 0x0f0a: > case 0x0f11: > case 0x0f12: > - has_N44_O17_errata[policy->cpu] = 1; > + set_bit(policy->cpu, has_N44_O17_errata); > pr_debug("has errata -- disabling low frequencies\n"); > } > > @@ -199,7 +199,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy) > > /* table init */ > for (i = 1; (p4clockmod_table[i].frequency != CPUFREQ_TABLE_END); i++) { > - if ((i < 2) && (has_N44_O17_errata[policy->cpu])) > + if ((i < 2) && test_bit(policy->cpu, has_N44_O17_errata)) > p4clockmod_table[i].frequency = CPUFREQ_ENTRY_INVALID; > else > p4clockmod_table[i].frequency = (stock_freq * i)/8; Looks good, however I think you should #include <linux/bitmap.h> to avoid build failures in the future or on certain architectures. -- Jean Delvare SUSE L3 Support ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] cpufreq: p4-clockmod: Replace bool_int_array[NR_CPUS] with bitmap 2015-09-27 16:10 ` Jean Delvare @ 2015-09-27 17:58 ` Denys Vlasenko 2015-09-28 7:10 ` Jean Delvare 0 siblings, 1 reply; 7+ messages in thread From: Denys Vlasenko @ 2015-09-27 17:58 UTC (permalink / raw) To: Jean Delvare Cc: Viresh Kumar, Rafael J. Wysocki, Ingo Molnar, Bartosz Golaszewski, H. Peter Anvin, Benoit Cousson, Fenghua Yu, Guenter Roeck, Jonathan Corbet, Peter Zijlstra, Thomas Gleixner, x86, linux-kernel On 09/27/2015 06:10 PM, Jean Delvare wrote: > Looks good, however I think you should #include <linux/bitmap.h> to > avoid build failures in the future or on certain architectures. <linux/cpumask.h> already includes <linux/bitmap.h> on any arch. p4-clockmod.c builds only on x86 arch, it's Pentium 4 on demand clock modulation/speed scaling module. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] cpufreq: p4-clockmod: Replace bool_int_array[NR_CPUS] with bitmap 2015-09-27 17:58 ` Denys Vlasenko @ 2015-09-28 7:10 ` Jean Delvare 0 siblings, 0 replies; 7+ messages in thread From: Jean Delvare @ 2015-09-28 7:10 UTC (permalink / raw) To: Denys Vlasenko Cc: Viresh Kumar, Rafael J. Wysocki, Ingo Molnar, Bartosz Golaszewski, H. Peter Anvin, Benoit Cousson, Fenghua Yu, Guenter Roeck, Jonathan Corbet, Peter Zijlstra, Thomas Gleixner, x86, linux-kernel On Sun, 27 Sep 2015 19:58:11 +0200, Denys Vlasenko wrote: > On 09/27/2015 06:10 PM, Jean Delvare wrote: > > Looks good, however I think you should #include <linux/bitmap.h> to > > avoid build failures in the future or on certain architectures. > > <linux/cpumask.h> already includes <linux/bitmap.h> > on any arch. Today it does. Tomorrow, who knows. > p4-clockmod.c builds only on x86 arch, it's Pentium 4 > on demand clock modulation/speed scaling module. That is a valid point. My comment was generic, I did not pay attention to the specific driver. -- Jean Delvare SUSE L3 Support ^ permalink raw reply [flat|nested] 7+ messages in thread
* [tip:x86/debug] x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap 2015-09-26 12:47 [PATCH] x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap Denys Vlasenko 2015-09-26 12:47 ` [PATCH] cpufreq: p4-clockmod: " Denys Vlasenko @ 2015-09-29 8:36 ` tip-bot for Denys Vlasenko 1 sibling, 0 replies; 7+ messages in thread From: tip-bot for Denys Vlasenko @ 2015-09-29 8:36 UTC (permalink / raw) To: linux-tip-commits Cc: torvalds, dvlasenk, jason.wessel, tglx, hpa, mingo, peterz, linux-kernel Commit-ID: 0d44975d1e2791f6df2b84b182f49d815ba3c9e0 Gitweb: http://git.kernel.org/tip/0d44975d1e2791f6df2b84b182f49d815ba3c9e0 Author: Denys Vlasenko <dvlasenk@redhat.com> AuthorDate: Sat, 26 Sep 2015 14:47:17 +0200 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Mon, 28 Sep 2015 10:13:31 +0200 x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap Straigntforward conversion from: int was_in_debug_nmi[NR_CPUS] to: DECLARE_BITMAP(was_in_debug_nmi, NR_CPUS) Saves about 2 kbytes in BSS for NR_CPUS=512. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Jason Wessel <jason.wessel@windriver.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1443271638-2568-1-git-send-email-dvlasenk@redhat.com [ Tidied up the code a bit. ] Signed-off-by: Ingo Molnar <mingo@kernel.org> --- arch/x86/kernel/kgdb.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c index d6178d9..44256a6 100644 --- a/arch/x86/kernel/kgdb.c +++ b/arch/x86/kernel/kgdb.c @@ -511,26 +511,31 @@ single_step_cont(struct pt_regs *regs, struct die_args *args) return NOTIFY_STOP; } -static int was_in_debug_nmi[NR_CPUS]; +static DECLARE_BITMAP(was_in_debug_nmi, NR_CPUS); static int kgdb_nmi_handler(unsigned int cmd, struct pt_regs *regs) { + int cpu; + switch (cmd) { case NMI_LOCAL: if (atomic_read(&kgdb_active) != -1) { /* KGDB CPU roundup */ - kgdb_nmicallback(raw_smp_processor_id(), regs); - was_in_debug_nmi[raw_smp_processor_id()] = 1; + cpu = raw_smp_processor_id(); + kgdb_nmicallback(cpu, regs); + set_bit(cpu, was_in_debug_nmi); touch_nmi_watchdog(); + return NMI_HANDLED; } break; case NMI_UNKNOWN: - if (was_in_debug_nmi[raw_smp_processor_id()]) { - was_in_debug_nmi[raw_smp_processor_id()] = 0; + cpu = raw_smp_processor_id(); + + if (__test_and_clear_bit(cpu, was_in_debug_nmi)) return NMI_HANDLED; - } + break; default: /* do nothing */ ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-09-29 8:40 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-09-26 12:47 [PATCH] x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap Denys Vlasenko 2015-09-26 12:47 ` [PATCH] cpufreq: p4-clockmod: " Denys Vlasenko 2015-09-26 22:07 ` Viresh Kumar 2015-09-27 16:10 ` Jean Delvare 2015-09-27 17:58 ` Denys Vlasenko 2015-09-28 7:10 ` Jean Delvare 2015-09-29 8:36 ` [tip:x86/debug] x86/kgdb: " tip-bot for Denys Vlasenko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox