Re: [PATCH v32 2/6] fs/proc/task_mmu: Implement IOCTL to get and optionally clear info about PTEs

From: Michał Mirosław
Date: Fri Aug 18 2023 - 21:05:03 EST


On Wed, Aug 16, 2023 at 04:30:45PM +0500, Muhammad Usama Anjum wrote:
> The PAGEMAP_SCAN IOCTL on the pagemap file can be used to get or optionally
> clear the info about page table entries.
[...]
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
[...]
> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
> +static unsigned long pagemap_thp_category(pmd_t pmd)
> +{
> + unsigned long categories = PAGE_IS_HUGE;
> +
> + /*
> + * THPs don't support file-backed memory. So PAGE_IS_FILE
> + * is not checked here.
> + */

It seems that we can have THP for files: ref. recent LKML thread [1].

[1] https://lkml.org/lkml/2023/8/16/1212

> + if (pmd_present(pmd)) {
> + categories |= PAGE_IS_PRESENT;
> + if (!pmd_uffd_wp(pmd))
> + categories |= PAGE_IS_WRITTEN;
> + if (is_zero_pfn(pmd_pfn(pmd)))
> + categories |= PAGE_IS_PFNZERO;
> + } else if (is_swap_pmd(pmd)) {
> + categories |= PAGE_IS_SWAPPED;
> + if (!pmd_swp_uffd_wp(pmd))
> + categories |= PAGE_IS_WRITTEN;
> + }
> +
> + return categories;
> +}

Best Regards
Michał Mirosław