qemu-ppc
[Top][All Lists]
Advanced

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

Re: [RFC PATCH 09/13] ppc/spapr: Don't kill the guest if a recovered FWN


From: Nicholas Piggin
Subject: Re: [RFC PATCH 09/13] ppc/spapr: Don't kill the guest if a recovered FWNMI machine check delivery fails
Date: Thu, 05 Mar 2020 13:52:56 +1000
User-agent: astroid/0.15.0 (https://github.com/astroidmail/astroid)

David Gibson's on March 4, 2020 4:06 pm:
> On Wed, Mar 04, 2020 at 03:28:46PM +1000, Nicholas Piggin wrote:
>> Try to be tolerant of errors if the machine check had been recovered
>> by the host.
>> 
>> Signed-off-by: Nicholas Piggin <address@hidden>
>> ---
>>  hw/ppc/spapr_events.c | 25 ++++++++++++++++++-------
>>  1 file changed, 18 insertions(+), 7 deletions(-)
>> 
>> diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
>> index 89ee036dd1..33f77005c2 100644
>> --- a/hw/ppc/spapr_events.c
>> +++ b/hw/ppc/spapr_events.c
>> @@ -807,13 +807,20 @@ static void spapr_mce_dispatch_elog(PowerPCCPU *cpu, 
>> bool recovered)
>>      /* get rtas addr from fdt */
>>      rtas_addr = spapr_get_rtas_addr();
>>      if (!rtas_addr) {
>> -        warn_report("FWNMI: Unable to deliver machine check to guest: "
>> -                    "rtas_addr not found.");
>> -        qemu_system_guest_panicked(NULL);
>> +        if (!recovered) {
>> +            warn_report("FWNMI: Unable to deliver machine check to guest: "
>> +                        "rtas_addr not found.");
>> +            qemu_system_guest_panicked(NULL);
>> +        } else {
>> +            warn_report("FWNMI: Unable to deliver machine check to guest: "
>> +                        "rtas_addr not found. Machine check recovered.");
>> +        }
>>          g_free(ext_elog);
>>          return;
>>      }
>>  
>> +    spapr->fwnmi_machine_check_interlock = cpu->vcpu_id;
>> +
> 
> The movement of this line doesn't appear to be relevant to the other
> changes in this patch.

That's because if we recover without delivering the NMI, we can't hold
the interlock because the guest isn't going to call "ibm,nmi-interlock".

Thanks,
Nick



reply via email to

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