LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Barry Song <baohua@kernel.org>
Cc: "Liam R. Howlett" <liam@infradead.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Lorenzo Stoakes <ljs@kernel.org>,
	akpm@linux-foundation.org, linux-mm@kvack.org, david@kernel.org,
	vbabka@kernel.org, rppt@kernel.org, mhocko@suse.com,
	jack@suse.cz, pfalcato@suse.de, wanglian@kylinos.cn,
	chentao@kylinos.cn, lianux.mm@gmail.com, kunwu.chan@gmail.com,
	liyangouwen1@oppo.com, chrisl@kernel.org, kasong@tencent.com,
	shikemeng@huaweicloud.com, nphamcs@gmail.com, bhe@redhat.com,
	youngjun.park@lge.com, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, loongarch@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
	linux-s390@vger.kernel.org, Nanzhe Zhao <nzzhao@126.com>
Subject: Re: [PATCH v2 0/5] mm: reduce mmap_lock contention and improve page fault performance
Date: Wed, 20 May 2026 22:04:51 +0100	[thread overview]
Message-ID: <ag4h87CBd-gph9zX@casper.infradead.org> (raw)
In-Reply-To: <CAGsJ_4yKxg1QugcsJi3WD0KVGJKe-zXycgm5D6cRi9vWtNcpDQ@mail.gmail.com>

On Wed, May 20, 2026 at 06:01:56AM +0800, Barry Song wrote:
> > implied is that the per-vma locking may stall mmap_lock writes for
> > longer than if the mmap_lock was taken in read mode?  Barry, is that
> > correct?
> 
> Not the case — the actual situation is (if we modify the
> current kernel to perform I/O without releasing VMA read locks):
> 
> thread 1 PF: lock vma1 read ----  IO ----- ;
> thread 2 PF: lock vma2 read ----- IO ----- ;
> thread 3 PF:  lock vma3 read ---- IO ----- ;
> thread 4 fork:  mmap_lock_write ---- lock vma1, vma2, vma3 write ;
> thread 5 :  take mmap_lock for any read/write reason
> 
> Now you can see that thread 4 has to wait for the I/O of
> VMA1, VMA2, and VMA3 to complete, and thread 5 then has to
> wait for thread 4 to release mmap_lock. Both thread 4 and
> thread 5 can become extremely slow, because I/O may be stuck
> anywhere in the bio/request queue or filesystem GC.
> 
> So now we have two choices:
> 
> 1. Change fork() to avoid taking the vma write lock for vma1/2/3 where possible;
> 2. Keep the current kernel behavior and drop the VMA lock before I/O:

Option 3: Say that this is a very silly thing to optimise for.  I have a
hard time believing that any application will care about the latency of
fork(), or the latency of page faults while it's in the middle of fork().
Multithreaded applications just don't fork that often!


  reply	other threads:[~2026-05-20 21:05 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-30  4:04 [PATCH v2 0/5] mm: reduce mmap_lock contention and improve page fault performance Barry Song (Xiaomi)
2026-04-30  4:04 ` [PATCH v2 1/5] mm/filemap: Retry fault by VMA lock if the lock was released for I/O Barry Song (Xiaomi)
2026-04-30  4:04 ` [PATCH v2 2/5] mm/swapin: Retry swapin " Barry Song (Xiaomi)
2026-04-30  4:04 ` [PATCH v2 3/5] mm: Move folio_lock_or_retry() and drop __folio_lock_or_retry() Barry Song (Xiaomi)
2026-04-30  4:04 ` [PATCH v2 4/5] mm: Don't retry page fault if folio is uptodate during swap-in Barry Song (Xiaomi)
2026-04-30 12:35   ` Matthew Wilcox
2026-05-01 16:11     ` Matthew Wilcox
2026-04-30  4:04 ` [PATCH v2 5/5] mm/filemap: Avoid retrying page faults on uptodate folios in filemap faults Barry Song (Xiaomi)
2026-04-30 12:37 ` [PATCH v2 0/5] mm: reduce mmap_lock contention and improve page fault performance Matthew Wilcox
2026-04-30 22:49   ` Barry Song
2026-05-01 14:56     ` Matthew Wilcox
2026-05-01 17:44       ` Barry Song
2026-05-01 17:57         ` Matthew Wilcox
2026-05-01 18:25           ` Barry Song
2026-05-01 19:39             ` Matthew Wilcox
2026-05-03 20:39               ` Barry Song
2026-05-03 13:13           ` Jan Kara
2026-05-03 19:55             ` Barry Song
2026-05-04 13:03               ` Jan Kara
2026-05-04 13:35                 ` Barry Song
2026-05-04 14:15                 ` Barry Song
2026-05-17  8:45           ` Barry Song
2026-05-18  9:46             ` Lorenzo Stoakes
2026-05-18 11:25               ` Barry Song
2026-05-18 16:17                 ` Matthew Wilcox
2026-05-18 20:50                   ` Barry Song
2026-05-18 19:56                 ` Suren Baghdasaryan
2026-05-18 21:14                   ` Barry Song
2026-05-19 12:45                     ` Lorenzo Stoakes
2026-05-19 14:17                     ` Liam R. Howlett
2026-05-19 22:01                       ` Barry Song
2026-05-20 21:04                         ` Matthew Wilcox [this message]
2026-05-20 21:14                           ` Barry Song
2026-05-20 21:15                             ` Matthew Wilcox
2026-05-20 21:35                               ` David Hildenbrand (Arm)
2026-05-20 23:37                                 ` Barry Song
2026-05-22 15:53                                   ` Lorenzo Stoakes
2026-05-22 21:31                                     ` Barry Song
2026-05-22  2:33                               ` Barry Song (Xiaomi)
2026-05-22 13:09                                 ` Matthew Wilcox
2026-05-22 13:36                                   ` Barry Song
2026-05-22 13:48                                     ` Barry Song
2026-05-22 15:42                                       ` Lorenzo Stoakes
2026-05-19 12:53                   ` Lorenzo Stoakes
2026-05-19 21:18                     ` Barry Song
2026-05-20  7:50                       ` Lorenzo Stoakes
2026-05-20  9:07                         ` Barry Song
2026-05-20 10:07                           ` Lorenzo Stoakes
2026-05-20 16:20                           ` Suren Baghdasaryan
2026-05-20  5:51                     ` Suren Baghdasaryan
2026-05-22 15:39                       ` Lorenzo Stoakes
2026-05-20 10:33                     ` David Hildenbrand (Arm)
2026-05-20 12:55                       ` Lorenzo Stoakes
2026-05-20 21:39                       ` Yang Shi
2026-05-22 15:37                         ` Lorenzo Stoakes
2026-05-19 12:43                 ` Lorenzo Stoakes
2026-05-18  9:53             ` David Hildenbrand (Arm)
2026-05-19 13:42               ` Lorenzo Stoakes
2026-05-18 21:21             ` Yang Shi
2026-05-19 11:07               ` Barry Song
2026-05-19 13:34                 ` Lorenzo Stoakes
2026-05-19 18:50                 ` Yang Shi
2026-05-19 20:53                   ` Yang Shi
2026-05-19 13:12               ` Lorenzo Stoakes
2026-05-19 13:39                 ` Lorenzo Stoakes
2026-05-19 18:41                   ` Yang Shi
2026-05-19 21:02                     ` Yang Shi
2026-05-20  8:11                       ` Lorenzo Stoakes
2026-05-01 15:52   ` Lorenzo Stoakes
2026-05-01 16:06     ` Matthew Wilcox
2026-05-01 17:09       ` Lorenzo Stoakes
2026-05-01 17:59     ` Barry Song

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=ag4h87CBd-gph9zX@casper.infradead.org \
    --to=willy@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=bhe@redhat.com \
    --cc=chentao@kylinos.cn \
    --cc=chrisl@kernel.org \
    --cc=david@kernel.org \
    --cc=jack@suse.cz \
    --cc=kasong@tencent.com \
    --cc=kunwu.chan@gmail.com \
    --cc=liam@infradead.org \
    --cc=lianux.mm@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=liyangouwen1@oppo.com \
    --cc=ljs@kernel.org \
    --cc=loongarch@lists.linux.dev \
    --cc=mhocko@suse.com \
    --cc=nphamcs@gmail.com \
    --cc=nzzhao@126.com \
    --cc=pfalcato@suse.de \
    --cc=rppt@kernel.org \
    --cc=shikemeng@huaweicloud.com \
    --cc=surenb@google.com \
    --cc=vbabka@kernel.org \
    --cc=wanglian@kylinos.cn \
    --cc=youngjun.park@lge.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