On Sat, 4 Dec 2021 18:23:13 +0000 Pasha Tatashin <pasha.tatashin@xxxxxxxxxx> wrote: > Check user page table entries at the time they are added and removed. > > Allows to synchronously catch memory corruption issues related to double > mapping. > > When a pte for an anonymous page is added into page table, we verify that > this pte does not already point to a file backed page, and vice versa if > this is a file backed page that is being added we verify that this page > does not have an anonymous mapping > > We also enforce that read-only sharing for anonymous pages is allowed > (i.e. cow after fork). All other sharing must be for file pages. > > Page table check allows to protect and debug cases where "struct page" > metadata became corrupted for some reason. For example, when refcnt or > mapcount become invalid. > > ... > > --- a/arch/Kconfig > +++ b/arch/Kconfig > @@ -1307,6 +1307,9 @@ config HAVE_ARCH_PFN_VALID > config ARCH_SUPPORTS_DEBUG_PAGEALLOC > bool > > +config ARCH_SUPPORTS_PAGE_TABLE_CHECK > + bool > + I guess a dependency on CONFIG_DEBUG_VM would be appropriate?