Re: [PATCH v3 | stable v5.12 1/3] x86/kvm: Teardown PV features on boot CPU as well

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

 



On Tue, Jun 01, 2021 at 09:16:42AM +0200, Krzysztof Kozlowski wrote:
> From: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
> 
> commit 8b79feffeca28c5459458fe78676b081e87c93a4 upstream.
> 
> Various PV features (Async PF, PV EOI, steal time) work through memory
> shared with hypervisor and when we restore from hibernation we must
> properly teardown all these features to make sure hypervisor doesn't
> write to stale locations after we jump to the previously hibernated kernel
> (which can try to place anything there). For secondary CPUs the job is
> already done by kvm_cpu_down_prepare(), register syscore ops to do
> the same for boot CPU.
> 
> Krzysztof:
> This fixes memory corruption visible after second resume from
> hibernation:
> 
>   BUG: Bad page state in process dbus-daemon  pfn:18b01
>   page:ffffea000062c040 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1 compound_mapcount: -30591
>   flags: 0xfffffc0078141(locked|error|workingset|writeback|head|mappedtodisk|reclaim)
>   raw: 000fffffc0078141 dead0000000002d0 dead000000000100 0000000000000000
>   raw: 0000000000000001 0000000000000000 00000000ffffffff 0000000000000000
>   page dumped because: PAGE_FLAGS_CHECK_AT_PREP flag set
>   bad because of flags: 0x78141(locked|error|workingset|writeback|head|mappedtodisk|reclaim)
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
> Message-Id: <20210414123544.1060604-3-vkuznets@xxxxxxxxxx>
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Signed-off-by: Andrea Righi <andrea.righi@xxxxxxxxxxxxx>
> [krzysztof: Extend the commit message, adjust for v5.10 context]
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
> ---
>  arch/x86/kernel/kvm.c | 57 +++++++++++++++++++++++++++++++------------
>  1 file changed, 41 insertions(+), 16 deletions(-)

All now queued up, thanks.

greg k-h



[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