2022-12-05 17:44:58

by Jason A. Donenfeld

[permalink] [raw]
Subject: [PATCH] mm: do not show ?? for VM_LOCKONFAULT pages

When VM_LOCKONFAULT was added, /proc/PID/smaps wasn't hooked up to it,
so looking at /proc/PID/smaps, it shows '??' instead of something
intelligable. This can be reached by userspace by simply calling
`mlock2(..., MLOCK_ONFAULT);`.

Fix this by adding "lf" to denote VM_LOCKONFAULT.

Cc: Eric B Munson <[email protected]>
Cc: Kirill A. Shutemov <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Cc: Andrew Morton <[email protected]>
Fixes: de60f5f10c58 ("mm: introduce VM_LOCKONFAULT")
Signed-off-by: Jason A. Donenfeld <[email protected]>
---
fs/proc/task_mmu.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 8a74cdcc9af0..60851e96530b 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -667,6 +667,7 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
[ilog2(VM_RAND_READ)] = "rr",
[ilog2(VM_DONTCOPY)] = "dc",
[ilog2(VM_DONTEXPAND)] = "de",
+ [ilog2(VM_LOCKONFAULT)] = "lf",
[ilog2(VM_ACCOUNT)] = "ac",
[ilog2(VM_NORESERVE)] = "nr",
[ilog2(VM_HUGETLB)] = "ht",
--
2.38.1


2022-12-06 22:43:01

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH] mm: do not show ?? for VM_LOCKONFAULT pages

On 12/5/22 18:30, Jason A. Donenfeld wrote:
> When VM_LOCKONFAULT was added, /proc/PID/smaps wasn't hooked up to it,
> so looking at /proc/PID/smaps, it shows '??' instead of something
> intelligable. This can be reached by userspace by simply calling
> `mlock2(..., MLOCK_ONFAULT);`.
>
> Fix this by adding "lf" to denote VM_LOCKONFAULT.
>
> Cc: Eric B Munson <[email protected]>
> Cc: Kirill A. Shutemov <[email protected]>
> Cc: Vlastimil Babka <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Fixes: de60f5f10c58 ("mm: introduce VM_LOCKONFAULT")
> Signed-off-by: Jason A. Donenfeld <[email protected]>

Acked-by: Vlastimil Babka <[email protected]>

> ---
> fs/proc/task_mmu.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> index 8a74cdcc9af0..60851e96530b 100644
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -667,6 +667,7 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
> [ilog2(VM_RAND_READ)] = "rr",
> [ilog2(VM_DONTCOPY)] = "dc",
> [ilog2(VM_DONTEXPAND)] = "de",
> + [ilog2(VM_LOCKONFAULT)] = "lf",
> [ilog2(VM_ACCOUNT)] = "ac",
> [ilog2(VM_NORESERVE)] = "nr",
> [ilog2(VM_HUGETLB)] = "ht",