Skip to content

Commit 99d2592

Browse files
KAGA-KOKOPeter Zijlstra
authored andcommitted
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: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20251215155708.929634896@linutronix.de
1 parent 28621ec commit 99d2592

File tree

22 files changed

+46
-1
lines changed

22 files changed

+46
-1
lines changed

arch/alpha/kernel/syscalls/syscall.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,3 +510,4 @@
510510
578 common file_getattr sys_file_getattr
511511
579 common file_setattr sys_file_setattr
512512
580 common listns sys_listns
513+
581 common rseq_slice_yield sys_rseq_slice_yield

arch/arm/tools/syscall.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,3 +485,4 @@
485485
468 common file_getattr sys_file_getattr
486486
469 common file_setattr sys_file_setattr
487487
470 common listns sys_listns
488+
471 common rseq_slice_yield sys_rseq_slice_yield

arch/arm64/tools/syscall_32.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,3 +482,4 @@
482482
468 common file_getattr sys_file_getattr
483483
469 common file_setattr sys_file_setattr
484484
470 common listns sys_listns
485+
471 common rseq_slice_yield sys_rseq_slice_yield

arch/m68k/kernel/syscalls/syscall.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,3 +470,4 @@
470470
468 common file_getattr sys_file_getattr
471471
469 common file_setattr sys_file_setattr
472472
470 common listns sys_listns
473+
471 common rseq_slice_yield sys_rseq_slice_yield

arch/microblaze/kernel/syscalls/syscall.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,3 +476,4 @@
476476
468 common file_getattr sys_file_getattr
477477
469 common file_setattr sys_file_setattr
478478
470 common listns sys_listns
479+
471 common rseq_slice_yield sys_rseq_slice_yield

arch/mips/kernel/syscalls/syscall_n32.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,3 +409,4 @@
409409
468 n32 file_getattr sys_file_getattr
410410
469 n32 file_setattr sys_file_setattr
411411
470 n32 listns sys_listns
412+
471 n32 rseq_slice_yield sys_rseq_slice_yield

arch/mips/kernel/syscalls/syscall_n64.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,3 +385,4 @@
385385
468 n64 file_getattr sys_file_getattr
386386
469 n64 file_setattr sys_file_setattr
387387
470 n64 listns sys_listns
388+
471 n64 rseq_slice_yield sys_rseq_slice_yield

arch/mips/kernel/syscalls/syscall_o32.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,3 +458,4 @@
458458
468 o32 file_getattr sys_file_getattr
459459
469 o32 file_setattr sys_file_setattr
460460
470 o32 listns sys_listns
461+
471 o32 rseq_slice_yield sys_rseq_slice_yield

arch/parisc/kernel/syscalls/syscall.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,3 +469,4 @@
469469
468 common file_getattr sys_file_getattr
470470
469 common file_setattr sys_file_setattr
471471
470 common listns sys_listns
472+
471 common rseq_slice_yield sys_rseq_slice_yield

arch/powerpc/kernel/syscalls/syscall.tbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,3 +561,4 @@
561561
468 common file_getattr sys_file_getattr
562562
469 common file_setattr sys_file_setattr
563563
470 common listns sys_listns
564+
471 nospu rseq_slice_yield sys_rseq_slice_yield

0 commit comments

Comments
 (0)