On 2011-09-23 11:31, Lai Jiangshan wrote: > On 09/22/2011 10:51 PM, Jan Kiszka wrote: >> On 2011-09-22 11:50, Lai Jiangshan wrote: >>> >>> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> >>> Subject: [PATCH] Fix inject-nmi >>> >>> Now, inject-nmi sends NMI to all cpus...but this doesn't emulate >>> pc hardware 'NMI button', which triggers LINT1. >>> >>> So, now, LINT1 mask is ignored by inject-nmi and NMIs are sent to >>> all cpus without checking LINT1 mask. >>> >>> Because Linux masks LINT1 of cpus other than 0, this makes trouble. >>> For example, kdump cannot run sometimes. >>> --- >>> hw/apic.c | 7 +++++++ >>> hw/apic.h | 1 + >>> monitor.c | 4 ++-- >>> 3 files changed, 10 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/apic.c b/hw/apic.c >>> index 69d6ac5..020305b 100644 >>> --- a/hw/apic.c >>> +++ b/hw/apic.c >>> @@ -205,6 +205,13 @@ void apic_deliver_pic_intr(DeviceState *d, int level) >>> } >>> } >>> >>> +void apic_deliver_lint1_intr(DeviceState *d) >>> +{ >>> + APICState *s = DO_UPCAST(APICState, busdev.qdev, d); >>> + >>> + apic_local_deliver(s, APIC_LVT_LINT1); >> >> This will cause a qemu crash when apic_state is NULL (non-SMP 486 >> systems). > > Ouch, I see. > What are the interrupt mode used for non-SMP 486 systems? Not sure what you mean with interrupt mode. Those boxes used to have only the classic PIC, no APIC & IOAPIC. I would simply inject the NMI directly (in the old way) if there is no APIC available. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html