From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Zi Yan <ziy@nvidia.com>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
"Liam R. Howlett" <liam@infradead.org>,
Nico Pache <nico.pache@linux.dev>,
Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
Barry Song <baohua@kernel.org>,
Lance Yang <lance.yang@linux.dev>,
Usama Arif <usama.arif@linux.dev>,
Kiryl Shutsemau <kas@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>,
Boqun Feng <boqun@kernel.org>, Waiman Long <longman@redhat.com>,
Suren Baghdasaryan <surenb@google.com>,
Vlastimil Babka <vbabka@kernel.org>,
Shakeel Butt <shakeel.butt@linux.dev>,
Yonghong Song <yonghong.song@linux.dev>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
Eduard Zingerman <eddyz87@gmail.com>,
Kumar Kartikeya Dwivedi <memxor@gmail.com>,
Martin KaFai Lau <martin.lau@linux.dev>,
Song Liu <song@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
Emil Tsalapatis <emil@etsalapatis.com>,
Ihor Solodrai <ihor.solodrai@linux.dev>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org
Subject: Re: [PATCH 3/5] locking/rwsem: add down_read[_killable]_nosteal()
Date: Thu, 5 Nov 2026 10:29:59 +0000 [thread overview]
Message-ID: <auxaRUi4h4a4tfUk@gremlin> (raw)
In-Reply-To: <9c367177-1822-4b6d-8bee-d283eef7b895@kernel.org>
On Thu, Nov 05, 2026 at 11:25:25AM +0100, David Hildenbrand (Arm) wrote:
> On 11/3/26 13:24, Lorenzo Stoakes (ARM) wrote:
> > On Tue, Nov 03, 2026 at 12:51:59PM +0100, Peter Zijlstra wrote:
> >> On Tue, Nov 03, 2026 at 08:27:44AM +0000, Lorenzo Stoakes (ARM) wrote:
> >>> Since commit 1a728dff855a ("locking/rwsem: Enable reader optimistic lock
> >>> stealing") a sleeping, queued writer whose handoff timeout hasn't expired
> >>> can have its lock stolen by a read lock issued before a woken queued writer
> >>> was able to acquire a lock.
> >>>
> >>> To avoid write lock starvation, this is only permitted if no other read
> >>> locks are held.
> >>>
> >>> However, this behaviour defeats the purpose of a reader periodically
> >>> dropping the lock to allow writers in, as doing so only works if the write
> >>> lock is acquired first, another read lock is held, or a queued writer's
> >>> handoff timeout has expired.
> >>>
> >>> Provide a means of indicating this intent via down_read_nosteal() and
> >>> down_read_killable_nosteal().
> >>>
> >>> Implement it by exposing a steal parameter to rwsem_down_read_slowpath(),
> >>> update the starvation logic to modify this parameter and modify the steal
> >>> branch to check it first.
> >>>
> >>> Also drop the duplicated RWSEM_WRITER_LOCKED check and remove the
> >>> goto as the steal condition makes this redundant.
> >>>
> >>> Exposing this function is safe as it only makes the lock more pessimistic,
> >>> so does not impact lock contention.
> >>
> >> Not generally a fan of this -- can't we tweak the steal thing to never
> >> steal if there are pending writers?
> >
> > Oh, well, I had assumed I couldn't fiddle with that behaviour across
> > rwsem's in general, so if I can yeah that's preferable!
> >
> > I could send that change separately then and drop it out of this series.
>
> Just so I understand correctly, this patch here would be gone entirely?
>
> But #4 depends on it, so now I'm confused :)
#4 would go too :P see, making your life easier ;)
I'll try sending the rwsem separately, then respin this one.
--
Cheers, Lorenzo
next prev parent reply other threads:[~2026-11-05 10:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 8:27 [PATCH 0/5] mm/khugepaged: bound mmap_lock hold time when walking an mm's VMAs Lorenzo Stoakes (ARM)
2026-11-03 8:27 ` [PATCH 1/5] Revert "mm/khugepaged: remove definition of struct khugepaged_mm_slot" Lorenzo Stoakes (ARM)
2026-11-04 7:46 ` Lance Yang
2026-11-05 10:17 ` David Hildenbrand (Arm)
2026-11-03 8:27 ` [PATCH 2/5] mm/khugepaged: scan mm's more efficiently under mmap_lock contention Lorenzo Stoakes (ARM)
2026-11-04 8:43 ` Lance Yang
2026-11-05 10:23 ` David Hildenbrand (Arm)
2026-11-05 14:01 ` Lorenzo Stoakes (ARM)
2026-11-03 8:27 ` [PATCH 3/5] locking/rwsem: add down_read[_killable]_nosteal() Lorenzo Stoakes (ARM)
2026-11-03 11:51 ` Peter Zijlstra
2026-11-03 12:24 ` Lorenzo Stoakes (ARM)
2026-11-05 10:25 ` David Hildenbrand (Arm)
2026-11-05 10:29 ` Lorenzo Stoakes (ARM) [this message]
2026-11-03 8:27 ` [PATCH 4/5] mm: add and use mmap_read_lock[_killable]_nosteal() on contention Lorenzo Stoakes (ARM)
2026-11-05 10:16 ` David Hildenbrand (Arm)
2026-11-05 14:02 ` Lorenzo Stoakes (ARM)
2026-11-05 16:23 ` Alexei Starovoitov
2026-11-03 8:27 ` [PATCH 5/5] mm/khugepaged: drop/reacquire mmap read lock if skipped enough VMAs Lorenzo Stoakes (ARM)
2026-11-03 8:49 ` sashiko-bot
2026-11-05 10:28 ` David Hildenbrand (Arm)
2026-11-05 14:46 ` Lorenzo Stoakes (ARM)
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=auxaRUi4h4a4tfUk@gremlin \
--to=ljs@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=boqun@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=eddyz87@gmail.com \
--cc=emil@etsalapatis.com \
--cc=ihor.solodrai@linux.dev \
--cc=jolsa@kernel.org \
--cc=kas@kernel.org \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=longman@redhat.com \
--cc=martin.lau@linux.dev \
--cc=memxor@gmail.com \
--cc=mingo@redhat.com \
--cc=nico.pache@linux.dev \
--cc=peterz@infradead.org \
--cc=ryan.roberts@arm.com \
--cc=shakeel.butt@linux.dev \
--cc=song@kernel.org \
--cc=surenb@google.com \
--cc=usama.arif@linux.dev \
--cc=vbabka@kernel.org \
--cc=will@kernel.org \
--cc=yonghong.song@linux.dev \
--cc=ziy@nvidia.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.