Thread (6 messages) 6 messages, 4 authors, 2018-01-11

Re: [RFC PATCH kernel] KVM: PPC: Book3S PR: Fix WIMG handling under pHyp

From: Alexander Graf <hidden>
Date: 2017-12-11 10:51:39
Also in: kvm


On 24.11.17 00:33, Greg Kurz wrote:
On Wed, 22 Nov 2017 14:42:21 +1100
Alexey Kardashevskiy [off-list ref] wrote:
quoted
96df226 "KVM: PPC: Book3S PR: Preserve storage control bits" added WIMG
bits preserving but it missed 2 special cases:
- a magic page in kvmppc_mmu_book3s_64_xlate() and
- guest real mode in kvmppc_handle_pagefault().

For these ptes WIMG were 0 and pHyp failed on these causing a guest to
stop in the very beginning at NIP=0x100 (due to bd9166ffe
"KVM: PPC: Book3S PR: Exit KVM on failed mapping").

This initializes WIMG to non-zero value HPTE_R_M. The value is chosen
as (0x192 & HPTE_R_WIMG); 0x192 is a magic value from
kvmppc_mmu_map_page().

Fixes: 96df226 "KVM: PPC: Book3S PR: Preserve storage control bits"
Signed-off-by: Alexey Kardashevskiy <redacted>
---

This indeed fixes PR KVM + VFIO under pHyp but selection of HPTE_R_M
is arguable.
The initial page fault at 0x100 on machine startup causes H_ENTER to fail in
pHyp with H_PARAMETER, as described in PAPR:

 The hypervisor checks that the WIMG bits within the PTE are appropriate for the
 physical page number else H_Parameter return. (For System Memory pages WIMG=0010,
 or, 1110 if the SAO option is enabled, and for IO pages WIMG=01**.)

I'm not aware we care for SAO so HPTE_R_M looks like the only sensible choice,
or I'm missing something ?

Anyway, this patch allows to start a PR guest on PowerVM again.

Reviewed-by: Greg Kurz <redacted>

and

Tested-by: Greg Kurz <redacted>
So doesn't that mean we should pick it up, mark it CC stable and push it
upstream?


Alex
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help