| Date | Fri, 14 Oct 2022 11:42:22 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 10/39] x86/mm: Introduce _PAGE_COW |
| |
On Thu, Sep 29, 2022 at 03:29:07PM -0700, Rick Edgecombe wrote: > @@ -300,6 +324,44 @@ static inline pte_t pte_clear_flags(pte_t pte, pteval_t clear) > return native_make_pte(v & ~clear); > } > > +/* > + * Normally the Dirty bit is used to denote COW memory on x86. But
This is misleading; this isn't an x86 specific thing. The core-mm code does this.
> + * in the case of X86_FEATURE_SHSTK, the software COW bit is used, > + * since the Dirty=1,Write=0 will result in the memory being treated > + * as shaodw stack by the HW. So when creating COW memory, a software > + * bit is used _PAGE_BIT_COW. The following functions pte_mkcow() and > + * pte_clear_cow() take a PTE marked conventially COW (Dirty=1) and > + * transition it to the shadow stack compatible version of COW (Cow=1). > + */
|