From: Michael Ellerman <mpe@ellerman.id.au>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
christophe.leroy@csgroup.eu, jeffxu@chromium.org,
jeffxu@google.com, linux-kernel@vger.kernel.org,
npiggin@gmail.com, oliver.sang@intel.com,
pedro.falcato@gmail.com
Subject: Re: [PATCH 1/4] mm: Add optional close() to struct vm_special_mapping
Date: Mon, 12 Aug 2024 18:22:44 +1000 [thread overview]
Message-ID: <87jzgm8817.fsf@mail.lhotse> (raw)
In-Reply-To: <shiq5v3jrmyi6ncwke7wgl76ojysgbhrchsk32q4lbx2hadqqc@kzyy2igem256>
"Liam R. Howlett" <Liam.Howlett@oracle.com> writes:
> * Michael Ellerman <mpe@ellerman.id.au> [240807 08:41]:
>> Add an optional close() callback to struct vm_special_mapping. It will
>> be used, by powerpc at least, to handle unmapping of the VDSO.
>>
>> Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
>> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
>> ---
>> include/linux/mm_types.h | 2 ++
>> mm/mmap.c | 3 +++
>> 2 files changed, 5 insertions(+)
>>
>> diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
>> index 485424979254..ef32d87a3adc 100644
>> --- a/include/linux/mm_types.h
>> +++ b/include/linux/mm_types.h
>> @@ -1313,6 +1313,8 @@ struct vm_special_mapping {
>>
>> int (*mremap)(const struct vm_special_mapping *sm,
>> struct vm_area_struct *new_vma);
>
> nit: missing new line?
Ack.
>> + void (*close)(const struct vm_special_mapping *sm,
>> + struct vm_area_struct *vma);
>> };
>>
>> enum tlb_flush_reason {
>> diff --git a/mm/mmap.c b/mm/mmap.c
>> index d0dfc85b209b..24bd6aa9155c 100644
>> --- a/mm/mmap.c
>> +++ b/mm/mmap.c
>> @@ -3624,6 +3624,9 @@ static vm_fault_t special_mapping_fault(struct vm_fault *vmf);
>> */
>
> The above comment should probably be expanded to explain what this is
> about, or removed.
I expanded it slightly, happy for others to wordsmith it further.
>> static void special_mapping_close(struct vm_area_struct *vma)
>> {
>> + const struct vm_special_mapping *sm = vma->vm_private_data;
>> + if (sm->close)
>> + sm->close(sm, vma);
>
> Right now we have the same sort of situation for mremap calls on
> special: we have a call to the specific vma mremap() function.
> ...
> So, are we missing an opportunity to avoid every arch having the same
> implementation here (that will evolve into random bugs existing in some
> archs for years before someone realises the cloned code wasn't fixed)?
> Do we already have a fix in ppc for the size checking that doesn't exist
> in the other archs in the case of mremap?
I took this as more of a meta comment/rant :)
Yes I agree the implementation should eventually be generic, but this series
is just about moving the existing powerpc behaviour from arch_unmap()
into this hook.
cheers
prev parent reply other threads:[~2024-08-12 8:22 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-07 12:41 [PATCH 1/4] mm: Add optional close() to struct vm_special_mapping Michael Ellerman
2024-08-07 12:41 ` Michael Ellerman
2024-08-07 12:41 ` [PATCH 2/4] powerpc/mm: Handle VDSO unmapping via close() rather than arch_unmap() Michael Ellerman
2024-08-07 12:41 ` Michael Ellerman
2024-08-07 15:33 ` David Hildenbrand
2024-08-07 15:33 ` David Hildenbrand
2024-08-07 15:43 ` Jeff Xu
2024-08-07 15:43 ` Jeff Xu
2024-08-07 15:56 ` Liam R. Howlett
2024-08-07 15:56 ` Liam R. Howlett
2024-08-07 16:36 ` Jeff Xu
2024-08-07 17:11 ` Liam R. Howlett
2024-08-07 17:11 ` Liam R. Howlett
2024-08-07 20:11 ` Jeff Xu
2024-08-07 23:20 ` Liam R. Howlett
2024-08-07 23:20 ` Liam R. Howlett
2024-08-08 3:21 ` Linus Torvalds
2024-08-08 3:36 ` Jeff Xu
2024-08-08 3:36 ` Jeff Xu
2024-08-08 18:08 ` Liam R. Howlett
2024-08-08 18:08 ` Liam R. Howlett
2024-08-08 18:36 ` Jeff Xu
2024-08-08 18:46 ` Liam R. Howlett
2024-08-08 18:46 ` Liam R. Howlett
2024-08-08 18:52 ` Jeff Xu
2024-08-08 4:18 ` Jeff Xu
2024-08-08 4:18 ` Jeff Xu
2024-08-08 16:15 ` Liam R. Howlett
2024-08-08 16:15 ` Liam R. Howlett
2024-08-07 12:41 ` [PATCH 3/4] mm: Remove arch_unmap() Michael Ellerman
2024-08-07 12:41 ` Michael Ellerman
2024-08-07 15:33 ` David Hildenbrand
2024-08-07 15:33 ` David Hildenbrand
2024-08-07 17:42 ` Thomas Gleixner
2024-08-07 17:42 ` Thomas Gleixner
2024-08-07 12:41 ` [PATCH 4/4] powerpc/vdso: Refactor error handling Michael Ellerman
2024-08-07 12:41 ` Michael Ellerman
2024-08-07 15:32 ` [PATCH 1/4] mm: Add optional close() to struct vm_special_mapping David Hildenbrand
2024-08-07 15:32 ` David Hildenbrand
2024-08-12 8:23 ` Michael Ellerman
2024-08-07 15:52 ` Liam R. Howlett
2024-08-07 15:52 ` Liam R. Howlett
2024-08-12 8:22 ` Michael Ellerman [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jzgm8817.fsf@mail.lhotse \
--to=mpe@ellerman.id.au \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=christophe.leroy@csgroup.eu \
--cc=jeffxu@chromium.org \
--cc=jeffxu@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=npiggin@gmail.com \
--cc=oliver.sang@intel.com \
--cc=pedro.falcato@gmail.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.