All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@kernel.org>
To: "André Almeida" <andrealmeid@igalia.com>
Cc: "Mathieu Desnoyers" <mathieu.desnoyers@efficios.com>,
	"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
	"Carlos O'Donell" <carlos@redhat.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Florian Weimer" <fweimer@redhat.com>,
	"Rich Felker" <dalias@aerifal.cx>,
	"Torvald Riegel" <triegel@redhat.com>,
	"Darren Hart" <dvhart@infradead.org>,
	"Ingo Molnar" <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	"Davidlohr Bueso" <dave@stgolabs.net>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Liam R . Howlett" <Liam.Howlett@oracle.com>,
	"Uros Bizjak" <ubizjak@gmail.com>,
	"Thomas Weißschuh" <linux@weissschuh.net>
Subject: Re: [patch V4 09/14] futex: Add robust futex unlock IP range
Date: Fri, 29 May 2026 23:30:57 +0200	[thread overview]
Message-ID: <87a4th9a3y.ffs@fw13> (raw)
In-Reply-To: <591f2298-8b89-490b-bcee-32876fb0fb3e@igalia.com>

On Wed, May 27 2026 at 22:02, André Almeida wrote:

> Em 02/04/2026 12:21, Thomas Gleixner escreveu:
>> There will be a VDSO function to unlock robust futexes in user space. The
>> unlock sequence is racy vs. clearing the list_pending_op pointer in the
>> tasks robust list head. To plug this race the kernel needs to know the
>> instruction window. As the VDSO is per MM the addresses are stored in
>> mm_struct::futex.
>> 
>> Architectures which implement support for this have to update these
>> addresses when the VDSO is (re)mapped and indicate the pending op pointer
>> size which is matching the IP.
>> 
>> Arguably this could be resolved by chasing mm->context->vdso->image, but
>> that's architecture specific and requires to touch quite some cache
>> lines. Having it in mm::futex reduces the cache line impact and avoids
>> having yet another set of architecture specific functionality.
>> 
>> To support multi size robust list applications (gaming) this provides two
>> ranges when COMPAT is enabled.
>> 
>> Signed-off-by: Thomas Gleixner <tglx@kernel.org>
>
> [...]
>
>> +void futex_reset_cs_ranges(struct futex_mm_data *fd);
>> +
>> +static inline void futex_set_vdso_cs_range(struct futex_mm_data *fd, unsigned int idx,
>> +					   unsigned long vdso, unsigned long start,
>> +					   unsigned long end, bool sz32)
>> +{
>> +	fd->unlock.cs_ranges[idx].start_ip = vdso + start;
>> +	fd->unlock.cs_ranges[idx].len = end - start;
>> +	fd->unlock.cs_ranges[idx].pop_size32 = sz32;
>> +}
>
> Can we have the "vdso +" done by the caller? VDSO_SYMBOL() that I used 
> for aarch64 adds the base address as well, see here: 
> https://lore.kernel.org/lkml/f8e83a24-0b04-4c88-9f67-0879875be25c@t-8ch.de/

Sure. Let me change that.

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

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-02 15:21 [patch V4 00/14] futex: Address the robust futex unlock race for real Thomas Gleixner
2026-04-02 15:21 ` [patch V4 01/14] futex: Move futex task related data into a struct Thomas Gleixner
2026-04-02 15:21 ` [patch V4 02/14] futex: Make futex_mm_init() void Thomas Gleixner
2026-04-02 15:21 ` [patch V4 03/14] futex: Move futex related mm_struct data into a struct Thomas Gleixner
2026-04-09 11:11   ` Nam Cao
2026-04-10 14:20     ` Thomas Gleixner
2026-04-02 15:21 ` [patch V4 04/14] futex: Provide UABI defines for robust list entry modifiers Thomas Gleixner
2026-04-02 15:21 ` [patch V4 05/14] uaccess: Provide unsafe_atomic_store_release_user() Thomas Gleixner
2026-04-02 15:21 ` [patch V4 06/14] x86: Select ARCH_MEMORY_ORDER_TSO Thomas Gleixner
2026-04-02 15:21 ` [patch V4 07/14] futex: Cleanup UAPI defines Thomas Gleixner
2026-04-02 15:21 ` [patch V4 08/14] futex: Add support for unlocking robust futexes Thomas Gleixner
2026-04-02 15:21 ` [patch V4 09/14] futex: Add robust futex unlock IP range Thomas Gleixner
2026-05-28  1:02   ` André Almeida
2026-05-29 21:30     ` Thomas Gleixner [this message]
2026-04-02 15:21 ` [patch V4 10/14] futex: Provide infrastructure to plug the non contended robust futex unlock race Thomas Gleixner
2026-05-28  1:08   ` André Almeida
2026-05-29 21:14     ` Thomas Gleixner
2026-04-02 15:21 ` [patch V4 11/14] x86/vdso: Prepare for robust futex unlock support Thomas Gleixner
2026-05-28  1:14   ` André Almeida
2026-04-02 15:22 ` [patch V4 12/14] x86/vdso: Implement __vdso_futex_robust_try_unlock() Thomas Gleixner
2026-04-29  8:44   ` Thomas Weißschuh
2026-05-07  9:29     ` Thomas Gleixner
2026-05-07  9:48       ` Thomas Weißschuh
2026-05-07 16:51         ` Thomas Gleixner
2026-05-29 15:36   ` André Almeida
2026-04-02 15:22 ` [patch V4 13/14] Documentation: futex: Add a note about robust list race condition Thomas Gleixner
2026-04-02 15:22 ` [patch V4 14/14] selftests: futex: Add tests for robust release operations Thomas Gleixner
2026-04-04  9:39 ` [PATCH 15/14] selftests: futex: Add tests for robust unlock within the critical section Sebastian Andrzej Siewior
2026-04-04 20:13   ` Thomas Gleixner
2026-05-22 22:16   ` André Almeida
2026-05-28  2:55   ` André Almeida
2026-05-29 21:27     ` Thomas Gleixner

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=87a4th9a3y.ffs@fw13 \
    --to=tglx@kernel.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=andrealmeid@igalia.com \
    --cc=arnd@arndb.de \
    --cc=bigeasy@linutronix.de \
    --cc=carlos@redhat.com \
    --cc=dalias@aerifal.cx \
    --cc=dave@stgolabs.net \
    --cc=dvhart@infradead.org \
    --cc=fweimer@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@weissschuh.net \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=triegel@redhat.com \
    --cc=ubizjak@gmail.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.