[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/5] QMP: add inject-nmi qmp command
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH 2/5] QMP: add inject-nmi qmp command |
Date: |
Mon, 6 Jun 2011 11:17:25 -0300 |
On Sat, 4 Jun 2011 11:34:17 +0300
Blue Swirl <address@hidden> wrote:
> On Wed, Jun 1, 2011 at 6:54 PM, Luiz Capitulino <address@hidden> wrote:
> > From: Lai Jiangshan <address@hidden>
> >
> > 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.
>
> Please rename the command to 'x-inject-nmi' to point out that it will
> be replaced by a generic method later.
Won't the generic interface be called 'inject'? In that case calling this
command 'inject-nmi' makes sense as it's exactly what the command does and
in the future it can be written in terms of the new 'inject' command.
>
> > Signed-off-by: Luiz Capitulino <address@hidden>
> > ---
> > monitor.c | 17 +++++++++++++++++
> > qmp-commands.hx | 27 +++++++++++++++++++++++++++
> > 2 files changed, 44 insertions(+), 0 deletions(-)
> >
> > diff --git a/monitor.c b/monitor.c
> > index f63cce0..81d3c9b 100644
> > --- a/monitor.c
> > +++ b/monitor.c
> > @@ -2555,6 +2555,23 @@ static void do_inject_nmi(Monitor *mon, const QDict
> > *qdict)
> > break;
> > }
> > }
> > +
> > +static int do_inject_nmi_all(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_all(Monitor *mon, const QDict *qdict, QObject
> > **ret_data)
> > +{
> > + qerror_report(QERR_UNSUPPORTED);
> > + return -1;
> > +}
> > #endif
> >
> > static void do_info_status_print(Monitor *mon, const QObject *data)
> > diff --git a/qmp-commands.hx b/qmp-commands.hx
> > index a9f109a..ae08b7a 100644
> > --- a/qmp-commands.hx
> > +++ b/qmp-commands.hx
> > @@ -430,6 +430,33 @@ Example:
> > EQMP
> >
> > {
> > + .name = "inject-nmi",
> > + .args_type = "",
> > + .params = "",
> > + .help = "",
> > + .user_print = monitor_user_noop,
> > + .mhandler.cmd_new = do_inject_nmi_all,
> > + },
> > +
> > +SQMP
> > +inject-nmi
> > +----------
> > +
> > +Inject an NMI on guest's CPUs.
> > +
> > +Arguments: None.
> > +
> > +Example:
> > +
> > +-> { "execute": "inject-nmi" }
> > +<- { "return": {} }
> > +
> > +Note: inject-nmi is only supported for x86 guest currently, it will
> > + returns "Unsupported" error for non-x86 guest.
> > +
> > +EQMP
> > +
> > + {
> > .name = "migrate",
> > .args_type = "detach:-d,blk:-b,inc:-i,uri:s",
> > .params = "[-d] [-b] [-i] uri",
> > --
> > 1.7.4.4
> >
> >
> >
>