linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY
@ 2024-02-08  8:48 Anshuman Khandual
  2024-02-08 16:48 ` David Hildenbrand
  0 siblings, 1 reply; 6+ messages in thread
From: Anshuman Khandual @ 2024-02-08  8:48 UTC (permalink / raw)
  To: linux-mm
  Cc: Anshuman Khandual, Andrew Morton, David Hildenbrand, linux-kernel,
	linux-fsdevel

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@linux-foundation.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
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",
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY
  2024-02-08  8:48 [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY Anshuman Khandual
@ 2024-02-08 16:48 ` David Hildenbrand
  2024-02-08 20:40   ` Andrew Morton
  0 siblings, 1 reply; 6+ messages in thread
From: David Hildenbrand @ 2024-02-08 16:48 UTC (permalink / raw)
  To: Anshuman Khandual, linux-mm; +Cc: Andrew Morton, linux-kernel, linux-fsdevel

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@linux-foundation.org>
> Cc: David Hildenbrand <david@redhat.com>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-fsdevel@vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> ---
> 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@redhat.com>

-- 
Cheers,

David / dhildenb


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY
  2024-02-08 16:48 ` David Hildenbrand
@ 2024-02-08 20:40   ` Andrew Morton
  2024-02-09 22:31     ` David Hildenbrand
  0 siblings, 1 reply; 6+ messages in thread
From: Andrew Morton @ 2024-02-08 20:40 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Anshuman Khandual, linux-mm, linux-kernel, linux-fsdevel

On Thu, 8 Feb 2024 17:48:26 +0100 David Hildenbrand <david@redhat.com> 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@linux-foundation.org>
> > Cc: David Hildenbrand <david@redhat.com>
> > Cc: linux-kernel@vger.kernel.org
> > Cc: linux-fsdevel@vger.kernel.org
> > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> > ---
> > 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@redhat.com>

I'm thinking

Fixes: b6b7a8faf05c ("mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings")
Cc: <stable@vger.kernel.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY
  2024-02-08 20:40   ` Andrew Morton
@ 2024-02-09 22:31     ` David Hildenbrand
  2024-02-12  2:00       ` Anshuman Khandual
  0 siblings, 1 reply; 6+ messages in thread
From: David Hildenbrand @ 2024-02-09 22:31 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Anshuman Khandual, linux-mm, linux-kernel, linux-fsdevel

On 08.02.24 21:40, Andrew Morton wrote:
> On Thu, 8 Feb 2024 17:48:26 +0100 David Hildenbrand <david@redhat.com> 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@linux-foundation.org>
>>> Cc: David Hildenbrand <david@redhat.com>
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: linux-fsdevel@vger.kernel.org
>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>>> ---
>>> 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@redhat.com>
> 
> I'm thinking
> 
> Fixes: b6b7a8faf05c ("mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings")
> Cc: <stable@vger.kernel.org>

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY
  2024-02-09 22:31     ` David Hildenbrand
@ 2024-02-12  2:00       ` Anshuman Khandual
  2024-02-12  9:05         ` David Hildenbrand
  0 siblings, 1 reply; 6+ messages in thread
From: Anshuman Khandual @ 2024-02-12  2:00 UTC (permalink / raw)
  To: David Hildenbrand, Andrew Morton; +Cc: linux-mm, linux-kernel, linux-fsdevel


On 2/10/24 04:01, David Hildenbrand wrote:
> On 08.02.24 21:40, Andrew Morton wrote:
>> On Thu, 8 Feb 2024 17:48:26 +0100 David Hildenbrand <david@redhat.com> 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@linux-foundation.org>
>>>> Cc: David Hildenbrand <david@redhat.com>
>>>> Cc: linux-kernel@vger.kernel.org
>>>> Cc: linux-fsdevel@vger.kernel.org
>>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>>>> ---
>>>> 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@redhat.com>
>>
>> I'm thinking
>>
>> Fixes: b6b7a8faf05c ("mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings")
>> Cc: <stable@vger.kernel.org>
> 
> 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

Ahh! you are right, completely missed that.

> 
> 
> So I rewoke my RB, this patch should be dropped and was never even tested unless I am missing something important.

Fair enough, let's drop this patch. I found this via code inspection while
looking into VM_UFFD_MISSING definition, booted with default configs which
has CONFIG_MMU enabled. But this was an oversight, my bad.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY
  2024-02-12  2:00       ` Anshuman Khandual
@ 2024-02-12  9:05         ` David Hildenbrand
  0 siblings, 0 replies; 6+ messages in thread
From: David Hildenbrand @ 2024-02-12  9:05 UTC (permalink / raw)
  To: Anshuman Khandual, Andrew Morton; +Cc: linux-mm, linux-kernel, linux-fsdevel

On 12.02.24 03:00, Anshuman Khandual wrote:
> 
> On 2/10/24 04:01, David Hildenbrand wrote:
>> On 08.02.24 21:40, Andrew Morton wrote:
>>> On Thu, 8 Feb 2024 17:48:26 +0100 David Hildenbrand <david@redhat.com> 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@linux-foundation.org>
>>>>> Cc: David Hildenbrand <david@redhat.com>
>>>>> Cc: linux-kernel@vger.kernel.org
>>>>> Cc: linux-fsdevel@vger.kernel.org
>>>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>>>>> ---
>>>>> 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@redhat.com>
>>>
>>> I'm thinking
>>>
>>> Fixes: b6b7a8faf05c ("mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings")
>>> Cc: <stable@vger.kernel.org>
>>
>> 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
> 
> Ahh! you are right, completely missed that.
> 
>>
>>
>> So I rewoke my RB, this patch should be dropped and was never even tested unless I am missing something important.
> 
> Fair enough, let's drop this patch. I found this via code inspection while
> looking into VM_UFFD_MISSING definition, booted with default configs which
> has CONFIG_MMU enabled. But this was an oversight, my bad.
> 

No worries, NUMMU is just absolutely weird :)

-- 
Cheers,

David / dhildenb


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-02-12  9:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-08  8:48 [PATCH] fs/proc/task_mmu: Add display flag for VM_MAYOVERLAY Anshuman Khandual
2024-02-08 16:48 ` David Hildenbrand
2024-02-08 20:40   ` Andrew Morton
2024-02-09 22:31     ` David Hildenbrand
2024-02-12  2:00       ` Anshuman Khandual
2024-02-12  9:05         ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).