Re: [Qemu-devel] [PATCH 2/2 V7] qemu,qmp: add inject-nmi qmp command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux