+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().