Re: [PATCH] KVM: x86: Don't attempt to load PDPTRs when 64-bit mode is enabled

From: Sean Christopherson
Date: Tue Jul 14 2020 - 15:02:11 EST


On Tue, Jul 14, 2020 at 11:55:45AM -0700, Jim Mattson wrote:
> On Mon, Jul 13, 2020 at 6:57 PM Sean Christopherson
> <sean.j.christopherson@xxxxxxxxx> wrote:
> >
> > Don't attempt to load PDPTRs if EFER.LME=1, i.e. if 64-bit mode is
> > enabled. A recent change to reload the PDTPRs when CR0.CD or CR0.NW is
> > toggled botched the EFER.LME handling and sends KVM down the PDTPR path
> > when is_paging() is true, i.e. when the guest toggles CD/NW in 64-bit
> > mode.
>
> Oops!
>
> I don't think "is_paging()" is relevant here, so much as "EFER.LME=1."
> As you note below, KVM *should* go down the PDPTR path when
> is_paging() is true and EFER.LME=0.

It's relevant for the EFER.LME=1 case as it's used to detect CR0.PG 0->1.

Though maybe we're in violent agreement?