Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 17 May 2023 09:03:10 -0700 | From | Davidlohr Bueso <> | Subject | Re: [RFC PATCH 1/4] rseq: Add sched_state field to struct rseq |
| |
On Wed, 17 May 2023, Mathieu Desnoyers wrote:
>Expose the "on-cpu" state for each thread through struct rseq to allow >adaptative mutexes to decide more accurately between busy-waiting and >calling sys_futex() to release the CPU, based on the on-cpu state of the >mutex owner.
Oh yeah moving the spin stuff out of the kernel is much nicer.
>It is only provided as an optimization hint, because there is no >guarantee that the page containing this field is in the page cache, and >therefore the scheduler may very well fail to clear the on-cpu state on >preemption. This is expected to be rare though, and is resolved as soon >as the task returns to user-space. > >The goal is to improve use-cases where the duration of the critical >sections for a given lock follows a multi-modal distribution, preventing >statistical guesses from doing a good job at choosing between busy-wait >and futex wait behavior. > >Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> >Cc: Peter Zijlstra (Intel) <peterz@infradead.org> >Cc: Jonathan Corbet <corbet@lwn.net> >Cc: Steven Rostedt (Google) <rostedt@goodmis.org> >Cc: Carlos O'Donell <carlos@redhat.com> >Cc: Florian Weimer <fweimer@redhat.com> >Cc: libc-alpha@sourceware.org >--- > include/linux/sched.h | 12 ++++++++++++ > include/uapi/linux/rseq.h | 17 +++++++++++++++++ > kernel/rseq.c | 14 ++++++++++++++ > 3 files changed, 43 insertions(+)
Ie: previous efforts
kernel/futex.c | 675 ++++++++++++++++++++++++++++++++++++++------ kernel/futex.c | 572 ++++++++++++++++++++++++++++++++++++-------------
Thanks, Davidlohr
| ![\](/images/icornerr.gif) |