Re: [PATCH v2 3/4] mm: page table check

From: Andrew Morton
Date: Tue Dec 07 2021 - 19:05:18 EST


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?