From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Daniel P. Berrange" Subject: Re: [Qemu-devel] [PATCH 2/2 V7] qemu,qmp: add inject-nmi qmp command Date: Mon, 4 Apr 2011 11:59:49 +0100 Message-ID: <20110404105949.GA30324@redhat.com> References: <4D74A8C9.2020408@cn.fujitsu.com> <4D74A974.6090509@cn.fujitsu.com> Reply-To: "Daniel P. Berrange" Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: Luiz Capitulino , Lai Jiangshan , kvm@vger.kernel.org, qemu-devel@nongnu.org, Markus Armbruster , Avi Kivity To: Lai Jiangshan Return-path: Received: from mx1.redhat.com ([209.132.183.28]:19860 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751741Ab1DDK77 (ORCPT ); Mon, 4 Apr 2011 06:59:59 -0400 Content-Disposition: inline In-Reply-To: <4D74A974.6090509@cn.fujitsu.com> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, Mar 07, 2011 at 05:46:28PM +0800, Lai Jiangshan wrote: > From: Lai Jiangshan > 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 ? 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 ? Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|