Messages in this thread Patch in this message | | | From | Denys Vlasenko <> | Subject | [PATCH] x86/kgdb: Replace bool_int_array[NR_CPUS] with bitmap | Date | Sat, 26 Sep 2015 14:47:17 +0200 |
| |
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
| |