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