Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

rseq: Lower default slice extension

Change the minimum slice extension to 5 usec.

Since slice_test selftest reaches a staggering ~350 nsec extension:

Task: slice_test Mean: 350.266 ns
Latency (us) | Count
------------------------------
EXPIRED | 238
0 us | 143189
1 us | 167
2 us | 26
3 us | 11
4 us | 28
5 us | 31
6 us | 22
7 us | 23
8 us | 32
9 us | 16
10 us | 35

Lower the minimal (and default) value to 5 usecs -- which is still massive.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260121143208.073200729@infradead.org

+2 -2
+1 -1
Documentation/userspace-api/rseq.rst
··· 79 79 interrupted and the interrupt results in a reschedule request in the 80 80 kernel, then the kernel can grant a time slice extension and return to 81 81 userspace instead of scheduling out. The length of the extension is 82 - determined by debugfs:rseq/slice_ext_nsec. The default value is 10 usec; which 82 + determined by debugfs:rseq/slice_ext_nsec. The default value is 5 usec; which 83 83 is the minimum value. It can be incremented to 50 usecs, however doing so 84 84 can/will affect the minimum scheduling latency. 85 85
+1 -1
kernel/rseq.c
··· 517 517 void *cookie; 518 518 }; 519 519 520 - static const unsigned int rseq_slice_ext_nsecs_min = 10 * NSEC_PER_USEC; 520 + static const unsigned int rseq_slice_ext_nsecs_min = 5 * NSEC_PER_USEC; 521 521 static const unsigned int rseq_slice_ext_nsecs_max = 50 * NSEC_PER_USEC; 522 522 unsigned int rseq_slice_ext_nsecs __read_mostly = rseq_slice_ext_nsecs_min; 523 523 static DEFINE_PER_CPU(struct slice_timer, slice_timer);