All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Suren Baghdasaryan <surenb@google.com>
Cc: Barry Song <baohua@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
	"David Hildenbrand (Arm)" <david@kernel.org>,
	"Liam R. Howlett" <liam@infradead.org>,
	akpm@linux-foundation.org, linux-mm@kvack.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: Sun, 21 Jun 2026 21:49:21 +0100	[thread overview]
Message-ID: <ajhOUdbWsswgQyl2@casper.infradead.org> (raw)
In-Reply-To: <CAJuCfpHTxaU4KdNmefU7C7cWZSLCFDLPdUrnqV6yzxzN+8RQ0Q@mail.gmail.com>

On Sat, Jun 20, 2026 at 04:48:57PM -0700, Suren Baghdasaryan wrote:
> Just checking in on the followup plans. IIUC the RFC mentioned will
> try to implement the solution we discussed at LSFMM: splitting
> VM_FAULT_RETRY into two flags - one for retrying under per-VMA locks
> and another one to fallback to mmap_lock.

I continue to hate this idea.  I don't believe that those who were
pushing for it have ever tried to understand the whole fault path.
It's utterly byzantine.

I defy anyone to make sense of this:

        /*
         * NOTE! This will make us return with VM_FAULT_RETRY, but with
         * the fault lock still held. That's how FAULT_FLAG_RETRY_NOWAIT
         * is supposed to work. We have way too many special cases..
         */
        if (vmf->flags & FAULT_FLAG_RETRY_NOWAIT)
                return 0;

        *fpin = maybe_unlock_mmap_for_io(vmf, *fpin);
        if (vmf->flags & FAULT_FLAG_KILLABLE) {
                if (__folio_lock_killable(folio)) {
                        /*
                         * We didn't have the right flags to drop the
                         * fault lock, but all fault_handlers only check
                         * for fatal signals if we return VM_FAULT_RETRY,
                         * so we need to drop the fault lock here and
                         * return 0 if we don't have a fpin.
                         */
                        if (*fpin == NULL)
                                release_fault_lock(vmf);
                        return 0;
                }

Wed need to simplify the fault path, not add additional complexity.
Josef has said he wouldn't've done the lock dropping had we had per-VMA
locks.  We should rip it out.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Matthew Wilcox <willy@infradead.org>
To: Suren Baghdasaryan <surenb@google.com>
Cc: Barry Song <baohua@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
	"David Hildenbrand (Arm)" <david@kernel.org>,
	"Liam R. Howlett" <liam@infradead.org>,
	akpm@linux-foundation.org, linux-mm@kvack.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: Sun, 21 Jun 2026 21:49:21 +0100	[thread overview]
Message-ID: <ajhOUdbWsswgQyl2@casper.infradead.org> (raw)
In-Reply-To: <CAJuCfpHTxaU4KdNmefU7C7cWZSLCFDLPdUrnqV6yzxzN+8RQ0Q@mail.gmail.com>

On Sat, Jun 20, 2026 at 04:48:57PM -0700, Suren Baghdasaryan wrote:
> Just checking in on the followup plans. IIUC the RFC mentioned will
> try to implement the solution we discussed at LSFMM: splitting
> VM_FAULT_RETRY into two flags - one for retrying under per-VMA locks
> and another one to fallback to mmap_lock.

I continue to hate this idea.  I don't believe that those who were
pushing for it have ever tried to understand the whole fault path.
It's utterly byzantine.

I defy anyone to make sense of this:

        /*
         * NOTE! This will make us return with VM_FAULT_RETRY, but with
         * the fault lock still held. That's how FAULT_FLAG_RETRY_NOWAIT
         * is supposed to work. We have way too many special cases..
         */
        if (vmf->flags & FAULT_FLAG_RETRY_NOWAIT)
                return 0;

        *fpin = maybe_unlock_mmap_for_io(vmf, *fpin);
        if (vmf->flags & FAULT_FLAG_KILLABLE) {
                if (__folio_lock_killable(folio)) {
                        /*
                         * We didn't have the right flags to drop the
                         * fault lock, but all fault_handlers only check
                         * for fatal signals if we return VM_FAULT_RETRY,
                         * so we need to drop the fault lock here and
                         * return 0 if we don't have a fpin.
                         */
                        if (*fpin == NULL)
                                release_fault_lock(vmf);
                        return 0;
                }

Wed need to simplify the fault path, not add additional complexity.
Josef has said he wouldn't've done the lock dropping had we had per-VMA
locks.  We should rip it out.

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

Thread overview: 161+ 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 ` 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   ` Barry Song (Xiaomi)
2026-04-30  4:04 ` [PATCH v2 2/5] mm/swapin: Retry swapin " Barry Song (Xiaomi)
2026-04-30  4:04   ` 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   ` 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  4:04   ` Barry Song (Xiaomi)
2026-04-30 12:35   ` Matthew Wilcox
2026-04-30 12:35     ` Matthew Wilcox
2026-05-01 16:11     ` 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  4:04   ` 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 12:37   ` Matthew Wilcox
2026-04-30 22:49   ` Barry Song
2026-04-30 22:49     ` Barry Song
2026-05-01 14:56     ` Matthew Wilcox
2026-05-01 14:56       ` Matthew Wilcox
2026-05-01 17:44       ` Barry Song
2026-05-01 17:44         ` Barry Song
2026-05-01 17:57         ` Matthew Wilcox
2026-05-01 17:57           ` Matthew Wilcox
2026-05-01 18:25           ` Barry Song
2026-05-01 18:25             ` Barry Song
2026-05-01 19:39             ` Matthew Wilcox
2026-05-01 19:39               ` Matthew Wilcox
2026-05-03 20:39               ` Barry Song
2026-05-03 20:39                 ` Barry Song
2026-05-03 13:13           ` Jan Kara
2026-05-03 13:13             ` Jan Kara
2026-05-03 19:55             ` Barry Song
2026-05-03 19:55               ` Barry Song
2026-05-04 13:03               ` Jan Kara
2026-05-04 13:03                 ` Jan Kara
2026-05-04 13:35                 ` Barry Song
2026-05-04 13:35                   ` Barry Song
2026-05-04 14:15                 ` Barry Song
2026-05-04 14:15                   ` Barry Song
2026-05-17  8:45           ` Barry Song
2026-05-17  8:45             ` Barry Song
2026-05-18  9:46             ` Lorenzo Stoakes
2026-05-18  9:46               ` Lorenzo Stoakes
2026-05-18 11:25               ` Barry Song
2026-05-18 11:25                 ` Barry Song
2026-05-18 16:17                 ` Matthew Wilcox
2026-05-18 16:17                   ` Matthew Wilcox
2026-05-18 20:50                   ` Barry Song
2026-05-18 20:50                     ` Barry Song
2026-05-18 19:56                 ` Suren Baghdasaryan
2026-05-18 19:56                   ` Suren Baghdasaryan
2026-05-18 21:14                   ` Barry Song
2026-05-18 21:14                     ` Barry Song
2026-05-19 12:45                     ` Lorenzo Stoakes
2026-05-19 12:45                       ` Lorenzo Stoakes
2026-05-19 14:17                     ` Liam R. Howlett
2026-05-19 14:17                       ` Liam R. Howlett
2026-05-19 22:01                       ` Barry Song
2026-05-19 22:01                         ` Barry Song
2026-05-20 21:04                         ` Matthew Wilcox
2026-05-20 21:04                           ` Matthew Wilcox
2026-05-20 21:14                           ` Barry Song
2026-05-20 21:14                             ` Barry Song
2026-05-20 21:15                             ` Matthew Wilcox
2026-05-20 21:15                               ` Matthew Wilcox
2026-05-20 21:35                               ` David Hildenbrand (Arm)
2026-05-20 21:35                                 ` David Hildenbrand (Arm)
2026-05-20 23:37                                 ` Barry Song
2026-05-20 23:37                                   ` Barry Song
2026-05-22 15:53                                   ` Lorenzo Stoakes
2026-05-22 15:53                                     ` Lorenzo Stoakes
2026-05-22 21:31                                     ` Barry Song
2026-05-22 21:31                                       ` Barry Song
2026-06-20 23:48                                       ` Suren Baghdasaryan
2026-06-20 23:48                                         ` Suren Baghdasaryan
2026-06-21 20:49                                         ` Matthew Wilcox [this message]
2026-06-21 20:49                                           ` Matthew Wilcox
2026-06-22  0:15                                           ` Barry Song
2026-06-22  0:15                                             ` Barry Song
2026-06-22 14:50                                             ` Liam R. Howlett
2026-06-22 14:50                                               ` Liam R. Howlett
2026-06-22 21:35                                               ` Barry Song
2026-06-22 21:35                                                 ` Barry Song
2026-06-23  7:58                                 ` Hongru Zhang
2026-06-23  7:58                                   ` Hongru Zhang
2026-06-23  8:02                                   ` David Hildenbrand (Arm)
2026-06-23  8:02                                     ` David Hildenbrand (Arm)
2026-06-23 10:10                                     ` Hongru Zhang
2026-06-23 10:10                                       ` Hongru Zhang
2026-05-22  2:33                               ` Barry Song (Xiaomi)
2026-05-22  2:33                                 ` Barry Song (Xiaomi)
2026-05-22 13:09                                 ` Matthew Wilcox
2026-05-22 13:09                                   ` Matthew Wilcox
2026-05-22 13:36                                   ` Barry Song
2026-05-22 13:36                                     ` Barry Song
2026-05-22 13:48                                     ` Barry Song
2026-05-22 13:48                                       ` Barry Song
2026-05-22 15:42                                       ` Lorenzo Stoakes
2026-05-22 15:42                                         ` Lorenzo Stoakes
2026-05-19 12:53                   ` Lorenzo Stoakes
2026-05-19 12:53                     ` Lorenzo Stoakes
2026-05-19 21:18                     ` Barry Song
2026-05-19 21:18                       ` Barry Song
2026-05-20  7:50                       ` Lorenzo Stoakes
2026-05-20  7:50                         ` Lorenzo Stoakes
2026-05-20  9:07                         ` Barry Song
2026-05-20  9:07                           ` Barry Song
2026-05-20 10:07                           ` Lorenzo Stoakes
2026-05-20 10:07                             ` Lorenzo Stoakes
2026-05-20 16:20                           ` Suren Baghdasaryan
2026-05-20 16:20                             ` Suren Baghdasaryan
2026-05-20  5:51                     ` Suren Baghdasaryan
2026-05-20  5:51                       ` Suren Baghdasaryan
2026-05-22 15:39                       ` Lorenzo Stoakes
2026-05-22 15:39                         ` Lorenzo Stoakes
2026-05-20 10:33                     ` David Hildenbrand (Arm)
2026-05-20 10:33                       ` David Hildenbrand (Arm)
2026-05-20 12:55                       ` Lorenzo Stoakes
2026-05-20 12:55                         ` Lorenzo Stoakes
2026-05-20 21:39                       ` Yang Shi
2026-05-20 21:39                         ` Yang Shi
2026-05-22 15:37                         ` Lorenzo Stoakes
2026-05-22 15:37                           ` Lorenzo Stoakes
2026-05-19 12:43                 ` Lorenzo Stoakes
2026-05-19 12:43                   ` Lorenzo Stoakes
2026-05-18  9:53             ` David Hildenbrand (Arm)
2026-05-18  9:53               ` David Hildenbrand (Arm)
2026-05-19 13:42               ` Lorenzo Stoakes
2026-05-19 13:42                 ` Lorenzo Stoakes
2026-05-18 21:21             ` Yang Shi
2026-05-18 21:21               ` Yang Shi
2026-05-19 11:07               ` Barry Song
2026-05-19 11:07                 ` Barry Song
2026-05-19 13:34                 ` Lorenzo Stoakes
2026-05-19 13:34                   ` Lorenzo Stoakes
2026-05-19 18:50                 ` Yang Shi
2026-05-19 18:50                   ` Yang Shi
2026-05-19 20:53                   ` Yang Shi
2026-05-19 20:53                     ` Yang Shi
2026-05-19 13:12               ` Lorenzo Stoakes
2026-05-19 13:12                 ` Lorenzo Stoakes
2026-05-19 13:39                 ` Lorenzo Stoakes
2026-05-19 13:39                   ` Lorenzo Stoakes
2026-05-19 18:41                   ` Yang Shi
2026-05-19 18:41                     ` Yang Shi
2026-05-19 21:02                     ` Yang Shi
2026-05-19 21:02                       ` Yang Shi
2026-05-20  8:11                       ` Lorenzo Stoakes
2026-05-20  8:11                         ` Lorenzo Stoakes
2026-05-01 15:52   ` Lorenzo Stoakes
2026-05-01 15:52     ` Lorenzo Stoakes
2026-05-01 16:06     ` Matthew Wilcox
2026-05-01 16:06       ` Matthew Wilcox
2026-05-01 17:09       ` Lorenzo Stoakes
2026-05-01 17:09         ` Lorenzo Stoakes
2026-05-01 17:59     ` Barry Song
2026-05-01 17:59       ` Barry Song
2026-05-20  2:04   ` Hillf Danton

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=ajhOUdbWsswgQyl2@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 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.