Re: [PATCH 1/5] mmu: mark spte present if the x bit is set

From: Bandan Das
Date: Tue Jun 28 2016 - 16:38:08 EST


Paolo Bonzini <pbonzini@xxxxxxxxxx> writes:

> On 28/06/2016 19:33, Bandan Das wrote:
>>>> >> static int is_shadow_present_pte(u64 pte)
>>>> >> {
>>>> >> - return pte & PT_PRESENT_MASK && !is_mmio_spte(pte);
>>>> >> + return pte & (PT_PRESENT_MASK | shadow_x_mask) &&
>>>> >> + !is_mmio_spte(pte);
>>> >
>>> > This should really be pte & 7 when using EPT. But this is okay as an
>>> > alternative to a new shadow_present_mask.
>> I could revive shadow_xonly_valid probably... Anyway, for now I will
>> add a TODO comment here.
>
> It's okay to it like this, because the only invalid PTEs reaching this
> point are those that is_mmio_spte filters away. Hence you'll never get
> -W- PTEs here, and pte & 7 is really the same as how you wrote it. It's
> pretty clever, and doesn't need a TODO at all. :)

Thanks, understood. So, the way it is written now covers all cases for
pte & 7. Let's still add a comment - clever things are usually
confusing to many!

> Paolo