On Wed, May 18, 2022 at 12:42 AM David Matlack <dmatlack@xxxxxxxxxx> wrote: > > Ah of course. e.g. FNAME(fetch) will call is_shadow_present_pte() on PAE > PDPTEs. > > Could you also update the comment above SPTE_MMU_PRESENT_MASK? Right now it > says: "Use bit 11, as it is ignored by all flavors of SPTEs and checking a low > bit often generates better code than for a high bit, e.g. 56+." I think it > would be helpful to also meniton that SPTE_MMU_PRESENT_MASK is also used in > PDPTEs which only ignore bits 11:9. > Hello Thank you for the review. I think using BUILD_BUG_ON() in the place that requires the constraint can avoid exploding comments in the definition since it is a build time check and there are not too many constraints. So I didn't change it in V3. Or better (still using build-time check rather than comments): #define PT_PTE_IGNORE_BITS xxxx #define PAE_PTE_IGNORE_BITS xxxx #define EPT_PTE_IGNORE_BITS xxxx static_assert(PT_PTE_IGNORE_BITS & PAE_PTE_IGNORE_BITS & EPT_PTE_IGNORE_BITS & SPTE_MMU_PRESENT_MASK); Thanks Lai