Re: [PATCH v29 09/32] x86/mm: Introduce _PAGE_COW

From: Edgecombe, Rick P
Date: Sat Aug 21 2021 - 23:00:31 EST


On Sat, 2021-08-21 at 19:20 +0000, Edgecombe, Rick P wrote:
> +KVM list.
>
> On Fri, 2021-08-20 at 11:11 -0700, Yu-cheng Yu wrote:
> >
> > static inline int pte_write(pte_t pte)
> > {
> > - return pte_flags(pte) & _PAGE_RW;
> > + /*
> > + * Shadow stack pages are always writable - but not by
> > normal
> > + * instructions, and only by shadow stack operations.
> > Therefore,
> > + * the W=0,D=1 test with pte_shstk().
> > + */
> > + return (pte_flags(pte) & _PAGE_RW) || pte_shstk(pte);
> > }
> >
>
> KVM uses this in a couple places when checking EPT ptes. But bit 6
> (dirty) is a totally different meaning in EPT. I think it's just used
> to trigger an optimization, but wondering if KVM should have its own
> TDP specific function instead of using pte_write().
>
Argh, never mind. I misread the new KVM mmu notifier refactor.