On 08.02.24 21:40, Andrew Morton wrote:
On Thu, 8 Feb 2024 17:48:26 +0100 David Hildenbrand <david@xxxxxxxxxx> wrote:
On 08.02.24 09:48, Anshuman Khandual wrote:
VM_UFFD_MISSING flag is mutually exclussive with VM_MAYOVERLAY flag as they
both use the same bit position i.e 0x00000200 in the vm_flags. Let's update
show_smap_vma_flags() to display the correct flags depending on CONFIG_MMU.
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: David Hildenbrand <david@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
---
This applies on v6.8-rc3
fs/proc/task_mmu.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 3f78ebbb795f..1c4eb25cfc17 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -681,7 +681,11 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
[ilog2(VM_HUGEPAGE)] = "hg",
[ilog2(VM_NOHUGEPAGE)] = "nh",
[ilog2(VM_MERGEABLE)] = "mg",
+#ifdef CONFIG_MMU
[ilog2(VM_UFFD_MISSING)]= "um",
+#else
+ [ilog2(VM_MAYOVERLAY)] = "ov",
+#endif /* CONFIG_MMU */
[ilog2(VM_UFFD_WP)] = "uw",
#ifdef CONFIG_ARM64_MTE
[ilog2(VM_MTE)] = "mt",
Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
I'm thinking
Fixes: b6b7a8faf05c ("mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings")
Cc: <stable@xxxxxxxxxxxxxxx>
I'm having a hard time believing that anybody that runs a !MMU kernel
would actually care about this bit being exposed as "ov" instead of "uw".
So in my thinking, one could even update
Documentation/filesystems/proc.rst to just mention that "uw" on !MMU is
only used for internal purposes.
But now, I actually read what that structure says:
"Don't forget to update Documentation/ on changes."
So, let's look there: Documentation/filesystems/proc.rst
"Note that there is no guarantee that every flag and associated mnemonic
will be present in all further kernel releases. Things get changed, the
flags may be vanished or the reverse -- new added. Interpretation of
their meaning might change in future as well. So each consumer of these
flags has to follow each specific kernel version for the exact semantic.
This file is only present if the CONFIG_MMU kernel configuration option
is enabled."
And in fact
$ git grep MMU fs/proc/Makefile
fs/proc/Makefile:proc-$(CONFIG_MMU) := task_mmu.o
So I rewoke my RB, this patch should be dropped and was never even
tested unless I am missing something important.
--
Cheers,
David / dhildenb