mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI
Stress-testing KVM's latest NMI support with kgdbts inside an SMP guest, I came across spurious unhandled NMIs while running the singlestep test. Looking closer at the code path each NMI takes when KGDB is enabled, I noticed that kgdb_nmicallback is called twice per event: One time via DIE_NMI_IPI notification, the second time on DIE_NMI. Removing the first invocation cures the unhandled NMIs here. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
This commit is contained in:
parent
fec6ed1d1f
commit
e85ceae910
@ -455,12 +455,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
|
|||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
|
|
||||||
case DIE_NMI_IPI:
|
case DIE_NMI_IPI:
|
||||||
if (atomic_read(&kgdb_active) != -1) {
|
/* Just ignore, we will handle the roundup on DIE_NMI. */
|
||||||
/* KGDB CPU roundup */
|
|
||||||
kgdb_nmicallback(raw_smp_processor_id(), regs);
|
|
||||||
was_in_debug_nmi[raw_smp_processor_id()] = 1;
|
|
||||||
touch_nmi_watchdog();
|
|
||||||
}
|
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
|
|
||||||
case DIE_NMIUNKNOWN:
|
case DIE_NMIUNKNOWN:
|
||||||
|
Loading…
Reference in New Issue
Block a user