[Note cc: Anthony] "Daniel P. Berrange" <berrange@xxxxxxxxxx> writes: > On Mon, Mar 07, 2011 at 05:46:28PM +0800, Lai Jiangshan wrote: >> From: Lai Jiangshan <laijs@xxxxxxxxxxxxxx> >> Date: Mon, 7 Mar 2011 17:05:15 +0800 >> Subject: [PATCH 2/2] qemu,qmp: add inject-nmi qmp command >> >> inject-nmi command injects an NMI on all CPUs of guest. >> It is only supported for x86 guest currently, it will >> returns "Unsupported" error for non-x86 guest. >> >> --- >> hmp-commands.hx | 2 +- >> monitor.c | 18 +++++++++++++++++- >> qmp-commands.hx | 29 +++++++++++++++++++++++++++++ >> 3 files changed, 47 insertions(+), 2 deletions(-) > > Does anyone have any feedback on this addition, or are all new > QMP patch proposals blocked pending Anthony's QAPI work ? That would be bad. Anthony, what's holding this back? > We'd like to support it in libvirt and thus want it to be > available in QMP, as well as HMP. > >> @@ -2566,6 +2566,22 @@ static void do_inject_nmi(Monitor *mon, const QDict *qdict) >> break; >> } >> } >> + >> +static int do_inject_nmi(Monitor *mon, const QDict *qdict, QObject **ret_data) >> +{ >> + CPUState *env; >> + >> + for (env = first_cpu; env != NULL; env = env->next_cpu) >> + cpu_interrupt(env, CPU_INTERRUPT_NMI); >> + >> + return 0; >> +} >> +#else >> +static int do_inject_nmi(Monitor *mon, const QDict *qdict, QObject **ret_data) >> +{ >> + qerror_report(QERR_UNSUPPORTED); >> + return -1; >> +} >> #endif >> > > Interesting that with HMP you need to specify a single CPU index, but > with QMP it is injecting to all CPUs at once. Is there any compelling > reason why we'd ever need the ability to only inject to a single CPU > from an app developer POV ? Quoting my own executive summary on this issue: * Real hardware's NMI button injects all CPUs. This is the primary use case. * Lai said injecting a single CPU can be useful for debugging. Was deemed acceptable as secondary use case. Lai also pointed out that the human monitor's nmi command injects a single CPU. That was dismissed as irrelevant for QMP. * No other use cases have been presented. -- 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