linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	 LKML <linux-kernel@vger.kernel.org>,
	 Peter Zijlstra <peterz@infradead.org>,
	"Paul E. McKenney" <paulmck@kernel.org>,
	 Boqun Feng <boqun.feng@gmail.com>,
	 Jonathan Corbet <corbet@lwn.net>,
	 Prakash Sangappa <prakash.sangappa@oracle.com>,
	 Madadi Vineeth Reddy <vineethr@linux.ibm.com>,
	 K Prateek Nayak <kprateek.nayak@amd.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	 Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	 Arnd Bergmann <arnd@arndb.de>,
	linux-arch@vger.kernel.org,
	 "carlos@redhat.com" <carlos@redhat.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	 Marco Elver <elver@google.com>, Peter Oskolkov <posk@posk.io>
Subject: Re: [patch V3 02/12] rseq: Add fields and constants for time slice extension
Date: Mon, 03 Nov 2025 20:19:46 +0100	[thread overview]
Message-ID: <lhu8qgm7wkt.fsf@oldenburg.str.redhat.com> (raw)
In-Reply-To: <8181a3e3-f49f-4278-9b15-67211d6151e0@efficios.com> (Mathieu Desnoyers's message of "Mon, 3 Nov 2025 12:00:30 -0500")

* Mathieu Desnoyers:

> On 2025-10-31 16:58, Thomas Gleixner wrote:
>> On Fri, Oct 31 2025 at 15:31, Mathieu Desnoyers wrote:
>>> On 2025-10-29 09:22, Thomas Gleixner wrote:
>>> [...]
>>>> +
>>>> +The thread has to enable the functionality via prctl(2)::
>>>> +
>>>> +    prctl(PR_RSEQ_SLICE_EXTENSION, PR_RSEQ_SLICE_EXTENSION_SET,
>>>> +          PR_RSEQ_SLICE_EXT_ENABLE, 0, 0);
>>>
>>> Enabling specifically for each thread requires hooking into thread
>>> creation, and is not a good fit for enabling this from executable or
>>> library constructor function.
>> Where is the problem? It's not rocket science to handle that in user
>> space.
>
> Overhead at thread creation is a metric that is closely followed
> by glibc developers. If we want a fine-grained per-thread control over
> the slice extension mechanism, it would be good if we can think of a way
> to allow userspace to enable it through either clone3 or rseq so
> we don't add another round-trip to the kernel at thread creation.
> This could be done either as an addition to this prctl, or as a
> replacement if we don't want to add two ways to do the same thing.

I think this is a bit exaggerated. 8-)

I'm more concerned about this: If it's a separate system call like the
quoted prctl, we'll likely have cases where the program launches and
this feature automatically gets enabled for the main thread by glibc.
Then the application installs a seccomp filter that doesn't allow the
prctl, and calls pthread_create.  At this point we either end up with a
partially enabled feature (depending on which thread the code runs), or
we have to fail the pthread_create call.  Neither option is great.

So something enabled by rseq flags seems better to me.  Maybe
default-enable and disable with a non-zero flag if backwards
compatibility is sufficient?  As far I understand it, this series has
performance improvements that more than offset the slice extension cost?

Thanks,
Florian


  reply	other threads:[~2025-11-03 19:20 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-29 13:22 [patch V3 00/12] rseq: Implement time slice extension mechanism Thomas Gleixner
2025-10-29 13:22 ` [patch V3 01/12] sched: Provide and use set_need_resched_current() Thomas Gleixner
2025-10-29 13:22 ` [patch V3 02/12] rseq: Add fields and constants for time slice extension Thomas Gleixner
2025-10-30 22:01   ` Prakash Sangappa
2025-10-31 14:32     ` Thomas Gleixner
2025-10-31 19:31   ` Mathieu Desnoyers
2025-10-31 20:58     ` Thomas Gleixner
2025-11-01 22:53       ` Thomas Gleixner
2025-11-03 17:00       ` Mathieu Desnoyers
2025-11-03 19:19         ` Florian Weimer [this message]
2025-11-04  0:20   ` Steven Rostedt
2025-10-29 13:22 ` [patch V3 03/12] rseq: Provide static branch for time slice extensions Thomas Gleixner
2025-10-29 17:23   ` Randy Dunlap
2025-10-29 21:12     ` Thomas Gleixner
2025-10-31 19:34   ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 04/12] rseq: Add statistics " Thomas Gleixner
2025-10-31 19:36   ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 05/12] rseq: Add prctl() to enable " Thomas Gleixner
2025-10-31 19:43   ` Mathieu Desnoyers
2025-10-31 21:05     ` Thomas Gleixner
2025-10-29 13:22 ` [patch V3 06/12] rseq: Implement sys_rseq_slice_yield() Thomas Gleixner
2025-10-31 19:46   ` Mathieu Desnoyers
2025-10-31 21:07     ` Thomas Gleixner
2025-11-03 17:07       ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 07/12] rseq: Implement syscall entry work for time slice extensions Thomas Gleixner
2025-10-31 19:53   ` Mathieu Desnoyers
2025-11-19  0:20   ` Prakash Sangappa
2025-11-19 15:25     ` Thomas Gleixner
2025-11-20  7:37       ` Prakash Sangappa
2025-11-20 11:31         ` Thomas Gleixner
2025-11-21  0:12           ` Prakash Sangappa
2025-11-26 22:02             ` Prakash Sangappa
2025-11-21  9:28           ` david laight
2025-10-29 13:22 ` [patch V3 08/12] rseq: Implement time slice extension enforcement timer Thomas Gleixner
2025-10-29 18:45   ` Steven Rostedt
2025-10-29 21:37     ` Thomas Gleixner
2025-10-29 23:53       ` Steven Rostedt
2025-10-31 19:59   ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 09/12] rseq: Reset slice extension when scheduled Thomas Gleixner
2025-10-31 20:03   ` Mathieu Desnoyers
2025-10-29 13:22 ` [patch V3 10/12] rseq: Implement rseq_grant_slice_extension() Thomas Gleixner
2025-10-29 20:08   ` Steven Rostedt
2025-10-29 21:46     ` Thomas Gleixner
2025-10-29 22:04       ` Steven Rostedt
2025-10-31 14:33         ` Thomas Gleixner
2025-10-29 13:22 ` [patch V3 11/12] entry: Hook up rseq time slice extension Thomas Gleixner
2025-10-29 13:22 ` [patch V3 12/12] selftests/rseq: Implement time slice extension test Thomas Gleixner
2025-10-29 15:10 ` [patch V3 00/12] rseq: Implement time slice extension mechanism Sebastian Andrzej Siewior
2025-10-29 15:40   ` Steven Rostedt
2025-10-29 21:49     ` Thomas Gleixner
2025-11-06 17:28 ` Prakash Sangappa
2025-11-10 14:23   ` Mathieu Desnoyers
2025-11-10 17:05     ` Mathieu Desnoyers
2025-11-11 16:42     ` Mathieu Desnoyers
2025-11-12  6:30       ` Prakash Sangappa
2025-11-12 20:40         ` Mathieu Desnoyers
2025-11-12 21:57         ` Thomas Gleixner
2025-11-12 23:17           ` Prakash Sangappa
2025-11-13  2:34             ` Prakash Sangappa
2025-11-13 14:38               ` Thomas Gleixner
2025-11-12 20:31       ` Thomas Gleixner
2025-11-12 20:46         ` Mathieu Desnoyers
2025-11-12 21:54           ` 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=lhu8qgm7wkt.fsf@oldenburg.str.redhat.com \
    --to=fweimer@redhat.com \
    --cc=arnd@arndb.de \
    --cc=bigeasy@linutronix.de \
    --cc=boqun.feng@gmail.com \
    --cc=carlos@redhat.com \
    --cc=corbet@lwn.net \
    --cc=dvyukov@google.com \
    --cc=elver@google.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=posk@posk.io \
    --cc=prakash.sangappa@oracle.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=vineethr@linux.ibm.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;
as well as URLs for NNTP newsgroup(s).