From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=41053 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q6hVt-0004FF-Fp for qemu-devel@nongnu.org; Mon, 04 Apr 2011 07:00:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q6hVn-0003FF-R0 for qemu-devel@nongnu.org; Mon, 04 Apr 2011 07:00:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38468) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q6hVn-0003De-DZ for qemu-devel@nongnu.org; Mon, 04 Apr 2011 06:59:59 -0400 Date: Mon, 4 Apr 2011 11:59:49 +0100 From: "Daniel P. Berrange" Subject: Re: [Qemu-devel] [PATCH 2/2 V7] qemu,qmp: add inject-nmi qmp command Message-ID: <20110404105949.GA30324@redhat.com> References: <4D74A8C9.2020408@cn.fujitsu.com> <4D74A974.6090509@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <4D74A974.6090509@cn.fujitsu.com> Reply-To: "Daniel P. Berrange" List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Lai Jiangshan Cc: Lai Jiangshan , kvm@vger.kernel.org, Markus Armbruster , qemu-devel@nongnu.org, Avi Kivity , Luiz Capitulino 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 :|