[Qemu-devel] Re: [PATCH v2 2/2] qemu, qmp: convert do_inject_nmi() to QObject, QError

2011-01-03 Thread Luiz Capitulino
On Mon, 20 Dec 2010 08:47:46 -0200
Marcelo Tosatti mtosa...@redhat.com wrote:

 On Fri, Dec 10, 2010 at 09:20:26AM -0200, Luiz Capitulino wrote:
  On Fri, 10 Dec 2010 14:36:08 +0800
  Lai Jiangshan la...@cn.fujitsu.com wrote:
  
   +SQMP
   +inject_nmi
   +--
   +
   +Inject an NMI on the given CPU (x86 only).
   +
   +Arguments:
   +
   +- cpu_index: the index of the CPU to be injected NMI (json-int)
   +
   +Example:
   +
   +- { execute: inject_nmi, arguments: { cpu_index: 0 } }
   +- { return: {} }
   +
   +EQMP
   +
  
  Avi, Anthony, can you please review this? Do we expect some kind of ack from
  the guest? Do we expect it respond in some way?
 
 Looks good to me. Don't except any response from the guest.
 
  Also note that the current series defines only one error condition: invalid
  cpu index. Can this fail in other ways?
  --
 
 Not really. An NMI can be pending already (which means the current
 command has no effect), but i don't see the need to report that.

Ok, thanks for the feedback Marcelo.

 




[Qemu-devel] Re: [PATCH v2 2/2] qemu, qmp: convert do_inject_nmi() to QObject, QError

2010-12-20 Thread Marcelo Tosatti
On Fri, Dec 10, 2010 at 09:20:26AM -0200, Luiz Capitulino wrote:
 On Fri, 10 Dec 2010 14:36:08 +0800
 Lai Jiangshan la...@cn.fujitsu.com wrote:
 
  +SQMP
  +inject_nmi
  +--
  +
  +Inject an NMI on the given CPU (x86 only).
  +
  +Arguments:
  +
  +- cpu_index: the index of the CPU to be injected NMI (json-int)
  +
  +Example:
  +
  +- { execute: inject_nmi, arguments: { cpu_index: 0 } }
  +- { return: {} }
  +
  +EQMP
  +
 
 Avi, Anthony, can you please review this? Do we expect some kind of ack from
 the guest? Do we expect it respond in some way?

Looks good to me. Don't except any response from the guest.

 Also note that the current series defines only one error condition: invalid
 cpu index. Can this fail in other ways?
 --

Not really. An NMI can be pending already (which means the current
command has no effect), but i don't see the need to report that.




[Qemu-devel] Re: [PATCH v2 2/2] qemu, qmp: convert do_inject_nmi() to QObject, QError

2010-12-10 Thread Markus Armbruster
Lai Jiangshan la...@cn.fujitsu.com writes:

 Convert do_inject_nmi() to QObject, QError, we need to use it(via libvirt).

 changed from v1
 Add document.
 Add error handling when the cpu index is invalid.

 Signed-off-by:  Lai Jiangshan la...@cn.fujitsu.com
 ---
 diff --git a/hmp-commands.hx b/hmp-commands.hx
 index 23024ba..f86d9fe 100644
 --- a/hmp-commands.hx
 +++ b/hmp-commands.hx
 @@ -724,7 +724,8 @@ ETEXI
  .args_type  = cpu_index:i,
  .params = cpu,
  .help   = inject an NMI on the given CPU,
 -.mhandler.cmd = do_inject_nmi,
 +.user_print = monitor_user_noop,
 +.mhandler.cmd_new = do_inject_nmi,
  },
  #endif
  STEXI
 diff --git a/monitor.c b/monitor.c
 index ec31eac..f375eb3 100644
 --- a/monitor.c
 +++ b/monitor.c
 @@ -2119,7 +2119,7 @@ static void do_wav_capture(Monitor *mon, const QDict 
 *qdict)
  #endif
  
  #if defined(TARGET_I386)
 -static void do_inject_nmi(Monitor *mon, const QDict *qdict)
 +static int do_inject_nmi(Monitor *mon, const QDict *qdict, QObject 
 **ret_data)
  {
  CPUState *env;
  int cpu_index = qdict_get_int(qdict, cpu_index);
 @@ -2127,8 +2127,11 @@ static void do_inject_nmi(Monitor *mon, const QDict 
 *qdict)
  for (env = first_cpu; env != NULL; env = env-next_cpu)
  if (env-cpu_index == cpu_index) {
  cpu_interrupt(env, CPU_INTERRUPT_NMI);
 -break;
 +return 0;
  }
 +
 +qerror_report(QERR_INVALID_CPU_INDEX, cpu_index);
 +return -1;

do_cpu_set() reports invalud index like this:

qerror_report(QERR_INVALID_PARAMETER_VALUE, index,
  a CPU number);

What about sticking to that?

[...]



[Qemu-devel] Re: [PATCH v2 2/2] qemu, qmp: convert do_inject_nmi() to QObject, QError

2010-12-10 Thread Luiz Capitulino
On Fri, 10 Dec 2010 14:36:08 +0800
Lai Jiangshan la...@cn.fujitsu.com wrote:

 +SQMP
 +inject_nmi
 +--
 +
 +Inject an NMI on the given CPU (x86 only).
 +
 +Arguments:
 +
 +- cpu_index: the index of the CPU to be injected NMI (json-int)
 +
 +Example:
 +
 +- { execute: inject_nmi, arguments: { cpu_index: 0 } }
 +- { return: {} }
 +
 +EQMP
 +

Avi, Anthony, can you please review this? Do we expect some kind of ack from
the guest? Do we expect it respond in some way?

Also note that the current series defines only one error condition: invalid
cpu index. Can this fail in other ways?