Thread (51 messages) 51 messages, 5 authors, 2021-09-01

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

From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Date: 2021-08-21 19:20:43
Also in: kvm, linux-api, linux-arch, linux-mm, lkml

+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().
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help