From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-mm@kvack.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
Arjun Roy <arjunroy@google.com>,
Eric Dumazet <edumazet@google.com>,
Suren Baghdasaryan <surenb@google.com>,
linux-fsdevel@vger.kernel.org,
Punit Agrawal <punit.agrawal@bytedance.com>
Subject: [PATCH v2 0/9] Avoid the mmap lock for fault-around
Date: Tue, 11 Jul 2023 21:20:38 +0100 [thread overview]
Message-ID: <20230711202047.3818697-1-willy@infradead.org> (raw)
This patchset adds the ability to handle page faults on parts of files
which are already in the page cache without taking the mmap lock.
I've taken a very gradual approach to pushing the lock down. I'm not 100%
confident in my ability to grasp all the finer aspects of VMA handling,
so some reviewrs may well feel that I could have combined some of
these patches. I did try to skip one of these steps and it had a bug,
so I feel justified in proceeding cautiously.
Several people have volunteered to run benchmarks on this, so I haven't.
I have run it through xfstests and it doesn't appear to introduce any
regressions.
This patchset is against next-20230711. There is a patch from Arjun Roy
in there which has terrible conflicts with this work. At Eric Dumazet's
suggestion I have started out by reverting it, then doing my patches
and redoing Arjun's patch on top. It has the benefit of halving the
size of Arjun's patch, Merging this is going to be a nightmare unless
the networking tree reverts Arjun's patch (the mm tree can't revert
a patch which isn't in the mm tree!).
Arjun's patch did point out that using lock_vma_under_rcu() is currently
very awkward, so that inspired patch 8 which makes it always available.
Arjun Roy (1):
tcp: Use per-vma locking for receive zerocopy
Matthew Wilcox (Oracle) (8):
Revert "tcp: Use per-vma locking for receive zerocopy"
mm: Allow per-VMA locks on file-backed VMAs
mm: Move FAULT_FLAG_VMA_LOCK check from handle_mm_fault()
mm: Move FAULT_FLAG_VMA_LOCK check into handle_pte_fault()
mm: Move FAULT_FLAG_VMA_LOCK check down in handle_pte_fault()
mm: Move the FAULT_FLAG_VMA_LOCK check down from do_fault()
mm: Run the fault-around code under the VMA lock
mm: Remove CONFIG_PER_VMA_LOCK ifdefs
MAINTAINERS | 1 -
arch/arm64/mm/fault.c | 2 --
arch/powerpc/mm/fault.c | 4 ----
arch/riscv/mm/fault.c | 4 ----
arch/s390/mm/fault.c | 2 --
arch/x86/mm/fault.c | 4 ----
include/linux/mm.h | 6 ++++++
include/linux/net_mm.h | 17 -----------------
include/net/tcp.h | 1 -
mm/hugetlb.c | 6 ++++++
mm/memory.c | 35 +++++++++++++++++++++++++----------
net/ipv4/tcp.c | 14 +++++---------
12 files changed, 42 insertions(+), 54 deletions(-)
delete mode 100644 include/linux/net_mm.h
--
2.39.2
next reply other threads:[~2023-07-11 20:21 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-11 20:20 Matthew Wilcox (Oracle) [this message]
2023-07-11 20:20 ` [PATCH v2 1/9] Revert "tcp: Use per-vma locking for receive zerocopy" Matthew Wilcox (Oracle)
2023-07-14 3:02 ` Suren Baghdasaryan
2023-07-14 3:34 ` Matthew Wilcox
2023-07-24 14:49 ` Jann Horn
2023-07-24 15:06 ` Matthew Wilcox
2023-07-24 21:42 ` Jakub Kicinski
2023-07-11 20:20 ` [PATCH v2 2/9] mm: Allow per-VMA locks on file-backed VMAs Matthew Wilcox (Oracle)
2023-07-14 3:03 ` Suren Baghdasaryan
2023-07-11 20:20 ` [PATCH v2 3/9] mm: Move FAULT_FLAG_VMA_LOCK check from handle_mm_fault() Matthew Wilcox (Oracle)
2023-07-14 3:04 ` Suren Baghdasaryan
2023-07-11 20:20 ` [PATCH v2 4/9] mm: Move FAULT_FLAG_VMA_LOCK check into handle_pte_fault() Matthew Wilcox (Oracle)
2023-07-14 3:17 ` Suren Baghdasaryan
2023-07-24 15:46 ` Jann Horn
2023-07-24 16:37 ` Matthew Wilcox
2023-07-11 20:20 ` [PATCH v2 5/9] mm: Move FAULT_FLAG_VMA_LOCK check down in handle_pte_fault() Matthew Wilcox (Oracle)
2023-07-14 3:26 ` Suren Baghdasaryan
2023-07-24 15:46 ` Jann Horn
2023-07-24 17:45 ` Matthew Wilcox
2023-07-11 20:20 ` [PATCH v2 6/9] mm: Move the FAULT_FLAG_VMA_LOCK check down from do_fault() Matthew Wilcox (Oracle)
2023-07-14 3:27 ` Suren Baghdasaryan
2023-07-11 20:20 ` [PATCH v2 7/9] mm: Run the fault-around code under the VMA lock Matthew Wilcox (Oracle)
2023-07-14 3:32 ` Suren Baghdasaryan
2023-07-24 17:38 ` Matthew Wilcox
2023-07-11 20:20 ` [PATCH v2 8/9] mm: Remove CONFIG_PER_VMA_LOCK ifdefs Matthew Wilcox (Oracle)
2023-07-14 3:34 ` Suren Baghdasaryan
2023-07-11 20:20 ` [PATCH v2 9/9] tcp: Use per-vma locking for receive zerocopy Matthew Wilcox (Oracle)
2023-07-14 3:40 ` Suren Baghdasaryan
2023-07-21 18:48 ` Matthew Wilcox
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=20230711202047.3818697-1-willy@infradead.org \
--to=willy@infradead.org \
--cc=arjunroy@google.com \
--cc=edumazet@google.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=punit.agrawal@bytedance.com \
--cc=surenb@google.com \
/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