Commit 99d25920 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Peter Zijlstra
Browse files

rseq: Implement sys_rseq_slice_yield()



Provide a new syscall which has the only purpose to yield the CPU after the
kernel granted a time slice extension.

sched_yield() is not suitable for that because it unconditionally
schedules, but the end of the time slice extension is not required to
schedule when the task was already preempted. This also allows to have a
strict check for termination to catch user space invoking random syscalls
including sched_yield() from a time slice extension region.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Link: https://patch.msgid.link/20251215155708.929634896@linutronix.de
parent 28621ec2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -510,3 +510,4 @@
578	common	file_getattr			sys_file_getattr
579	common	file_setattr			sys_file_setattr
580	common	listns				sys_listns
581	common	rseq_slice_yield		sys_rseq_slice_yield
+1 −0
Original line number Diff line number Diff line
@@ -485,3 +485,4 @@
468	common	file_getattr			sys_file_getattr
469	common	file_setattr			sys_file_setattr
470	common	listns				sys_listns
471	common	rseq_slice_yield		sys_rseq_slice_yield
+1 −0
Original line number Diff line number Diff line
@@ -482,3 +482,4 @@
468	common	file_getattr			sys_file_getattr
469	common	file_setattr			sys_file_setattr
470	common	listns				sys_listns
471	common	rseq_slice_yield		sys_rseq_slice_yield
+1 −0
Original line number Diff line number Diff line
@@ -470,3 +470,4 @@
468	common	file_getattr			sys_file_getattr
469	common	file_setattr			sys_file_setattr
470	common	listns				sys_listns
471	common	rseq_slice_yield		sys_rseq_slice_yield
+1 −0
Original line number Diff line number Diff line
@@ -476,3 +476,4 @@
468	common	file_getattr			sys_file_getattr
469	common	file_setattr			sys_file_setattr
470	common	listns				sys_listns
471	common	rseq_slice_yield		sys_rseq_slice_yield
Loading