linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
	linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
	Punit Agrawal <punit.agrawal@bytedance.com>
Subject: [PATCH v3 00/10] Handle most file-backed faults under the VMA lock
Date: Mon, 24 Jul 2023 19:54:00 +0100	[thread overview]
Message-ID: <20230724185410.1124082-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.

Several people have volunteered to run benchmarks on this, so I haven't.
I am running it through xfstests and it hasn't appear to introduce any
regressions so far.

This patchset is against next-20230724.

v3:
 - Remove the reversion and reapplication of Arjun Roy's patch;
   "Remove CONFIG_PER_VMA_LOCK ifdefs" is brought to the front, and
   Arjun's patch is instead fixed.
 - Add the missing pte_unmap() pointed out by Jann Horn
 - Do not call ->huge_fault under the VMA lock, also pointed out by Jann
 - Add the last two patches that handle faults on existing PTEs
 - Add R-b from Suren (for the patches that remained intact)
 - Better wording in commit messages

Matthew Wilcox (Oracle) (10):
  mm: Remove CONFIG_PER_VMA_LOCK ifdefs
  mm: Allow per-VMA locks on file-backed VMAs
  mm: Move FAULT_FLAG_VMA_LOCK check from handle_mm_fault()
  mm: Handle PUD faults under the VMA lock
  mm: Handle some PMD faults under the VMA lock
  mm: Move FAULT_FLAG_VMA_LOCK check down in handle_pte_fault()
  mm: Move FAULT_FLAG_VMA_LOCK check down from do_fault()
  mm: Run the fault-around code under the VMA lock
  mm: Handle swap and NUMA PTE faults under the VMA lock
  mm: Handle faults that merely update the accessed bit under the VMA
    lock

 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             | 97 +++++++++++++++++++++++++++++------------
 net/ipv4/tcp.c          | 11 ++---
 12 files changed, 86 insertions(+), 69 deletions(-)
 delete mode 100644 include/linux/net_mm.h

-- 
2.39.2


             reply	other threads:[~2023-07-24 18:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-24 18:54 Matthew Wilcox (Oracle) [this message]
2023-07-24 18:54 ` [PATCH v3 01/10] mm: Remove CONFIG_PER_VMA_LOCK ifdefs Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 02/10] mm: Allow per-VMA locks on file-backed VMAs Matthew Wilcox (Oracle)
2023-07-25 12:57   ` Conor Dooley
2023-07-25 14:15     ` Suren Baghdasaryan
2023-07-25 14:31       ` Matthew Wilcox
2023-07-24 18:54 ` [PATCH v3 03/10] mm: Move FAULT_FLAG_VMA_LOCK check from handle_mm_fault() Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 04/10] mm: Handle PUD faults under the VMA lock Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 05/10] mm: Handle some PMD " Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 06/10] mm: Move FAULT_FLAG_VMA_LOCK check down in handle_pte_fault() Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 07/10] mm: Move FAULT_FLAG_VMA_LOCK check down from do_fault() Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 08/10] mm: Run the fault-around code under the VMA lock Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 09/10] mm: Handle swap and NUMA PTE faults " Matthew Wilcox (Oracle)
2023-07-24 18:54 ` [PATCH v3 10/10] mm: Handle faults that merely update the accessed bit " Matthew Wilcox (Oracle)

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=20230724185410.1124082-1-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=punit.agrawal@bytedance.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;
as well as URLs for NNTP newsgroup(s).