On Mon, Jan 23, 2017 at 02:17:20PM +1100, Suraj Jitindar Singh wrote: > On Thu, 2017-01-12 at 20:07 +1100, Paul Mackerras wrote: > > This adds the code to construct the second-level ("partition-scoped" > > in > > architecturese) page tables for guests using the radix MMU. Apart > > from > > the PGD level, which is allocated when the guest is created, the rest > > of the tree is all constructed in response to hypervisor page faults. > > > > As well as hypervisor page faults for missing pages, we also get > > faults > > for reference/change (RC) bits needing to be set, as well as various > > other error conditions. For now, we only set the R or C bit in the > > guest page table if the same bit is set in the host PTE for the > > backing page. > > > > This code can take advantage of the guest being backed with either > > transparent or ordinary 2MB huge pages, and insert 2MB page entries > > into the guest page tables. There is no support for 1GB huge pages > > yet. [snip] > > diff --git a/arch/powerpc/kvm/book3s_hv.c > > b/arch/powerpc/kvm/book3s_hv.c > > index 6bd0f4a..4c2d054 100644 > > --- a/arch/powerpc/kvm/book3s_hv.c > > +++ b/arch/powerpc/kvm/book3s_hv.c > > @@ -3357,7 +3357,10 @@ static void kvmppc_core_destroy_vm_hv(struct > > kvm *kvm) > > > > kvmppc_free_vcores(kvm); > > > > - kvmppc_free_hpt(kvm); > > + if (kvm->arch.radix) > kvm_is_radix() for consistency? Sure, and in the other places you noted. Thanks, Paul.