mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jihan LIN <linjh22s@gmail.com>
To: K Prateek Nayak <kprateek.nayak@amd.com>,
	Peter Zijlstra <peterz@infradead.org>
Cc: suleiman@google.com, andrealmeid@igalia.com, bsegall@google.com,
	dave@stgolabs.net, dietmar.eggemann@arm.com,
	dvhart@infradead.org, jstultz@google.com, juri.lelli@redhat.com,
	linux-kernel@vger.kernel.org, mgorman@suse.de, mingo@redhat.com,
	qyousef@google.com, rostedt@goodmis.org, soolaugust@gmail.com,
	ssouhlal@freebsd.org, tglx@kernel.org,
	vincent.guittot@linaro.org, vschneid@redhat.com
Subject: Re: [RFC PATCH 07/12] futex: Make FUTEX_*_PING use Proxy Execution.
Date: Wed, 23 Sep 2026 22:04:14 +0800	[thread overview]
Message-ID: <d60be130-23eb-4e11-9bb0-1df0ec6ad42e@gmail.com> (raw)
In-Reply-To: <d7d00454-0789-486a-9439-1734a64f304f@amd.com>


On 9/21/26 12:51 PM, K Prateek Nayak wrote:
> On 9/17/2026 9:06 PM, Peter Zijlstra wrote:
>>>> Could we handle cycles in find_proxy_task(), or add a chain walk for
>>>> deadlock detection for FUTEX_LOCK_PING like rtmutex?
>>> https://lore.kernel.org/lkml/20260714152220.4046736-1-soolaugust@gmail.com/
>> Ah yes, that thing. I would suggest to still have a hard-coded limit,
>> but perhaps in addition to the sequence mark.
>>
>> Without a hard-coded limit, userspace is free to create chains of
>> arbitrary length. This should be discouraged :-)
>>
>> Also, we need to be able to return -EDEADLK to userspace.
>>
>> Ideally userspace gets to have an extra graph walk on block though, and
>> not rely on pick time sanity checks.
> Ack!
> 
> One way to do that is by setting the "p->blocked_on" to -1 when
> find_proxy_task() detects a chain and then clear the "p->is_blocked"
> making it runnable.
> 
> Once the task exits out of schedule_preempt_disabled() and grabs the
> wait_lock, we can check the "p->blocked_on" to return -EDEADLK / stop
> proxy and fully block the task.

This approach could reuse the owner walk, which sounds useful for
avoiding an extra chain walk in the contended futex path.

That said, checking for deadlocks before sleeping would also be more
similar with PI futexes, and extra walk might be worth the cost if the
last lock attempt can simply return -EDEADLK to userspace.


Best regards,
Jihan

  reply	other threads:[~2026-09-23 14:04 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-17  4:33 [RFC PATCH 00/12] FUTEX_PING: A stealable futex using " Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 01/12] sched: Abstract task_struct->blocked_on by locking primitive Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 02/12] futex: Switch PI futex to use p->pi_futex_lock instead of p->pi_lock Suleiman Souhlal
2026-09-17 15:38   ` Peter Zijlstra
2026-09-18  7:11     ` Suleiman Souhlal
2026-09-18 10:07       ` K Prateek Nayak
2026-09-18 12:06       ` Peter Zijlstra
2026-09-17  4:33 ` [RFC PATCH 03/12] futex: Add "ping" parameter to pi_state management functions and export them Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 04/12] futex: Introduce stealable PI futex, FUTEX_*_PING Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 05/12] futex: Implement exit_ping_state_list() Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 06/12] futex: Address aborting from futex_lock_ping() while owning ping_state Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 07/12] futex: Make FUTEX_*_PING use Proxy Execution Suleiman Souhlal
2026-09-17 13:18   ` Jihan LIN
2026-09-17 14:39     ` K Prateek Nayak
2026-09-17 15:36       ` Peter Zijlstra
2026-09-21  4:51         ` K Prateek Nayak
2026-09-23 14:04           ` Jihan LIN [this message]
2026-09-17  4:33 ` [RFC PATCH 08/12] futex: Implement PING futex handoff Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 09/12] futex: Wake up donor in PING futex unlock Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 10/12] futex: Optimistic spinning for PING futexes Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 11/12] futex: Allow userspace stealing " Suleiman Souhlal
2026-09-17  4:33 ` [RFC PATCH 12/12] tools/testing/futex: Add ping_bench, a tool for benchmarking futexes Suleiman Souhlal
2026-09-17  8:58 ` [RFC PATCH 00/12] FUTEX_PING: A stealable futex using Proxy Execution Peter Zijlstra
2026-09-17 17:53   ` John Stultz
2026-09-17 18:51     ` Steven Rostedt
2026-09-18  6:30       ` Suleiman Souhlal
2026-09-18  8:25     ` Peter Zijlstra
2026-09-18  6:07   ` Suleiman Souhlal
2026-09-18  8:07     ` Peter Zijlstra

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=d60be130-23eb-4e11-9bb0-1df0ec6ad42e@gmail.com \
    --to=linjh22s@gmail.com \
    --cc=andrealmeid@igalia.com \
    --cc=bsegall@google.com \
    --cc=dave@stgolabs.net \
    --cc=dietmar.eggemann@arm.com \
    --cc=dvhart@infradead.org \
    --cc=jstultz@google.com \
    --cc=juri.lelli@redhat.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=qyousef@google.com \
    --cc=rostedt@goodmis.org \
    --cc=soolaugust@gmail.com \
    --cc=ssouhlal@freebsd.org \
    --cc=suleiman@google.com \
    --cc=tglx@kernel.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.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

all inboxes | Powered by JetHome®