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: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH/RFC] vl: add no-panic option
Date: Mon, 17 Oct 2016 16:37:59 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0


On 17/10/2016 14:54, Christian Borntraeger wrote:
> 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.

(b) is not a guest panic, it's "INTERNAL_ERROR" right?  It would be easy
to accomodate the difference.  I tend to agree, since one may want to
play with the monitor in that case (e.g. x/10i $pc-20).

> In any
> case I want a tuneable and either -no-panic or the new -no-shutdown
> would allow that.

Let's change -no-shutdown then.  Actually I think we might even change
it in 2.8, since for example Libvirt always uses -no-shutdown and
everyone else that doesn't use it would probably hang on panics.

>>>  void qemu_system_guest_panicked(void)
>>>  {
>>> +    if (no_panic)
>>> +   return qemu_system_shutdown_request();
>>>      if (current_cpu) {
>>>          current_cpu->crash_occurred = true;
>>>      }

I think the "if (no_panic)" should go at the end so that the SHUTDOWN
event is sent after GUEST_PANICKED.

You would also have to add 'poweroff' to the GuestPanicAction enum too,
adjusting qemu_system_guest_panicked's call to
qapi_event_send_guest_panicked.

>>> @@ -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]