qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH/RFC] vl: add no-panic option


From: Christian Borntraeger
Subject: Re: [Qemu-devel] [PATCH/RFC] vl: add no-panic option
Date: Mon, 17 Oct 2016 14:54:35 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0

On 10/17/2016 02:50 PM, Paolo Bonzini wrote:
>> Some testcase will trigger a guest panic state. For testing purposes
>> it can be useful to exit QEMU anyway.
> 
> I wonder if this should be done by default *unless* -no-shutdown is
> provided.  This would require some planning (and delay this to 2.9,
> in all likelihood), but it probably would be pretty nice for general
> usage.

Yes, might also an option. There are basically two cases
a: guest panic
b: qemu panic (e.g. if KVM_RUN return EFAULT)

I think for b, the current behaviour might be better. In any
case I want a tuneable and either -no-panic or the new -no-shutdown
would allow that.


> 
> Paolo
> 
>> Signed-off-by: Christian Borntraeger <address@hidden>
>> ---
>>  qemu-options.hx | 9 +++++++++
>>  vl.c            | 6 ++++++
>>  2 files changed, 15 insertions(+)
>>
>> diff --git a/qemu-options.hx b/qemu-options.hx
>> index 01f01df..ee6d3d0 100644
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -3301,6 +3301,15 @@ This allows for instance switching to monitor to
>> commit changes to the
>>  disk image.
>>  ETEXI
>>  
>> +DEF("no-panic", 0, QEMU_OPTION_no_panic, \
>> +    "-no-panic       exit QEMU also in guest panic state\n", QEMU_ARCH_ALL)
>> +STEXI
>> address@hidden -no-panic
>> address@hidden -no-panic
>> +Exit QEMU on guest panic instead of keeping it alive. This allows for
>> +instance running tests that are known to panic at the end.
>> +ETEXI
>> +
>>  DEF("loadvm", HAS_ARG, QEMU_OPTION_loadvm, \
>>      "-loadvm [tag|id]\n" \
>>      "                start right away with a saved state (loadvm in
>>      monitor)\n",
>> diff --git a/vl.c b/vl.c
>> index f3abd99..57e1d91 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -164,6 +164,7 @@ int no_hpet = 0;
>>  int fd_bootchk = 1;
>>  static int no_reboot;
>>  int no_shutdown = 0;
>> +int no_panic = 0;
>>  int cursor_hide = 1;
>>  int graphic_rotate = 0;
>>  const char *watchdog;
>> @@ -1774,6 +1775,8 @@ void qemu_system_reset(bool report)
>>  
>>  void qemu_system_guest_panicked(void)
>>  {
>> +    if (no_panic)
>> +    return qemu_system_shutdown_request();
>>      if (current_cpu) {
>>          current_cpu->crash_occurred = true;
>>      }
>> @@ -3780,6 +3783,9 @@ int main(int argc, char **argv, char **envp)
>>              case QEMU_OPTION_no_shutdown:
>>                  no_shutdown = 1;
>>                  break;
>> +            case QEMU_OPTION_no_panic:
>> +                no_panic = 1;
>> +                break;
>>              case QEMU_OPTION_show_cursor:
>>                  cursor_hide = 0;
>>                  break;
>> --
>> 2.5.5
>>
>>
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]