From: "Liam R. Howlett" <Liam.Howlett@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, Suren Baghdasaryan <surenb@google.com>,
Vlastimil Babka <vbabka@suse.cz>,
Lorenzo Stoakes <lstoakes@gmail.com>,
Matthew Wilcox <willy@infradead.org>,
sidhartha.kumar@oracle.com,
"Paul E . McKenney" <paulmck@kernel.org>,
Bert Karwatzki <spasswolf@web.de>, Jiri Olsa <olsajiri@gmail.com>,
linux-kernel@vger.kernel.org, Kees Cook <kees@kernel.org>
Subject: Re: [PATCH v2 00/15] Avoid MAP_FIXED gap exposure
Date: Wed, 26 Jun 2024 21:15:18 -0400 [thread overview]
Message-ID: <nlq44eay3zjapg23tjprukm7w2ae6qcy5xtc5xsxogsmd52lwu@fhfzf4l6777u> (raw)
In-Reply-To: <20240626135855.a4b64612a9104ff163e30bd7@linux-foundation.org>
* Andrew Morton <akpm@linux-foundation.org> [240626 16:59]:
> On Tue, 25 Jun 2024 15:11:30 -0400 "Liam R. Howlett" <Liam.Howlett@oracle.com> wrote:
>
> > It is now possible to walk the vma tree using the rcu read locks and is
> > beneficial to do so to reduce lock contention. Doing so while a
> > MAP_FIXED mapping is executing means that a reader may see a gap in the
> > vma tree that should never logically exist - and does not when using the
> > mmap lock in read mode. The temporal gap exists because mmap_region()
> > calls munmap() prior to installing the new mapping.
>
> What are the consequences when this race hits? IOW, why do we need to
> change anything?
>
In the (near) future, we want to walk the vma tree to produce
/proc/<pid>/maps. Without this change we will see the temporal gap and
expose it to the user. This series was initially sent to Suren as part
of his patch set.
We also have the new interface for an ioctl request to a vma at or above
an address. I had highlighted that an rcu reader would be ideal, but
proved too difficult at this time. These patches by Andrii are currently
not using the rcu reading method as this and a per-vma locking
clarification are needed.
Since there were two users for this code, I decided to send it out
before the other patches.
Thanks,
Liam
next prev parent reply other threads:[~2024-06-27 1:15 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-25 19:11 Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 01/15] mm/mmap: Correctly position vma_iterator in __split_vma() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 02/15] mm/mmap: Introduce abort_munmap_vmas() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 03/15] mm/mmap: Introduce vmi_complete_munmap_vmas() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 04/15] mm/mmap: Extract the gathering of vmas from do_vmi_align_munmap() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 05/15] mm/mmap: Introduce vma_munmap_struct for use in munmap operations Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 06/15] mm/mmap: Change munmap to use vma_munmap_struct() for accounting and surrounding vmas Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 07/15] mm/mmap: Extract validate_mm() from vma_complete() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 08/15] mm/mmap: Inline munmap operation in mmap_region() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 09/15] mm/mmap: Expand mmap_region() munmap call Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 10/15] mm/mmap: Reposition vma iterator in mmap_region() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 11/15] mm/mmap: Track start and end of munmap in vma_munmap_struct Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 12/15] mm/mmap: Avoid zeroing vma tree in mmap_region() Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 13/15] mm/mmap: Use PHYS_PFN " Liam R. Howlett
2024-06-25 19:11 ` [PATCH v2 14/15] mm/mmap: Use vms accounted pages " Liam R. Howlett
2024-06-26 16:32 ` Kees Cook
2024-06-26 18:04 ` Liam R. Howlett
2024-06-26 18:45 ` Kees Cook
2024-06-25 19:11 ` [PATCH v2 15/15] mm/mmap: Move may_expand_vm() check " Liam R. Howlett
2024-06-26 20:58 ` [PATCH v2 00/15] Avoid MAP_FIXED gap exposure Andrew Morton
2024-06-27 1:15 ` Liam R. Howlett [this message]
2024-06-27 1:28 ` Andrew Morton
2024-06-27 13:31 ` Liam R. Howlett
2024-06-27 9:31 Bert Karwatzki
2024-07-03 10:13 Bert Karwatzki
2024-07-03 13:53 ` Liam R. Howlett
2024-07-03 14:30 Bert Karwatzki
2024-07-04 18:31 ` Liam R. Howlett
2024-07-04 21:07 Bert Karwatzki
2024-07-04 21:15 Bert Karwatzki
2024-07-04 21:50 Bert Karwatzki
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=nlq44eay3zjapg23tjprukm7w2ae6qcy5xtc5xsxogsmd52lwu@fhfzf4l6777u \
--to=liam.howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lstoakes@gmail.com \
--cc=olsajiri@gmail.com \
--cc=paulmck@kernel.org \
--cc=sidhartha.kumar@oracle.com \
--cc=spasswolf@web.de \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
--cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox