Re: FAILED: patch "[PATCH] KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before" failed to apply to 4.19-stable tree

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

 



On 08/10/2019 23:45, Sasha Levin wrote:
> On Tue, Oct 08, 2019 at 09:20:08AM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
>>
>> The patch below does not apply to the 4.19-stable tree.
>> If someone wants it applied there, or to any other stable or longterm
>> tree, then please email the backport, including the original git commit
>> id to <stable@xxxxxxxxxxxxxxx>.
>>
>> thanks,
>>
>> greg k-h
>>
>> ------------------ original commit in Linus's tree ------------------
>>
>> From 237aed48c642328ff0ab19b63423634340224a06 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@xxxxxxxx>
>> Date: Tue, 6 Aug 2019 19:25:38 +0200
>> Subject: [PATCH] KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before
>> disabling the VP
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> When a vCPU is brought done, the XIVE VP (Virtual Processor) is first
>> disabled and then the event notification queues are freed. When freeing
>> the queues, we check for possible escalation interrupts and free them
>> also.
>>
>> But when a XIVE VP is disabled, the underlying XIVE ENDs also are
>> disabled in OPAL. When an END (Event Notification Descriptor) is
>> disabled, its ESB pages (ESn and ESe) are disabled and loads return all
>> 1s. Which means that any access on the ESB page of the escalation
>> interrupt will return invalid values.
>>
>> When an interrupt is freed, the shutdown handler computes a 'saved_p'
>> field from the value returned by a load in xive_do_source_set_mask().
>> This value is incorrect for escalation interrupts for the reason
>> described above.
>>
>> This has no impact on Linux/KVM today because we don't make use of it
>> but we will introduce in future changes a xive_get_irqchip_state()
>> handler. This handler will use the 'saved_p' field to return the state
>> of an interrupt and 'saved_p' being incorrect, softlockup will occur.
>>
>> Fix the vCPU cleanup sequence by first freeing the escalation interrupts
>> if any, then disable the XIVE VP and last free the queues.
>>
>> Fixes: 90c73795afa2 ("KVM: PPC: Book3S HV: Add a new KVM device for the XIVE native exploitation mode")
>> Fixes: 5af50993850a ("KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller")
>> Cc: stable@xxxxxxxxxxxxxxx # v4.12+
>> Signed-off-by: Cédric Le Goater <clg@xxxxxxxx>
>> Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
>> Link: https://lore.kernel.org/r/20190806172538.5087-1-clg@xxxxxxxx
> 
> I've dropped the xive native part on 4.19 and 4.14 because 90c73795afa24
> ("KVM: PPC: Book3S HV: Add a new KVM device for the XIVE native
> exploitation mode") isn't there.

yes. It was introduced in 5.2. 

The fixes on the XICS-on-XIVE KVM device and the XIVE native KVM device 
are often the same patch because they have a lot in common. 
We should try to separate the patches in the future to ease backport
on the stable trees. Thanks for doing so,

C.





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux