On Mon, 30 Oct 2023 14:29:49 +0100 Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > On Thu, Oct 26, 2023 at 09:16:58AM -0400, Steven Rostedt wrote: > > > I said: > > > > If we are worried about abuse, we could even punish tasks that don't call > > sched_yield() by the time its extended time slice is taken. > > This is a user interface, ofcourse I'm worried about abuse. That's the > first thing you *should* think about. > > Userspace is out to get you -- must assume hostile. 100% agree! > > Notably, we were talking usec latencies in the Chrome thread, you're > adding 1000 usec latencies here (in the best case, delaying scheduling > until the next tick, 10000usec for the HZ=100 folks). This is quite > 'unfortunate'. > > On my very aged IVB-EP I can get 50us scheduling latencies on a good > day, on my brand spanking new SPR I can get 20us (more faster more > better etc..). > > Ideally we don't allow userspace to extend much (if any) beyond the > granularity already imposed by the kernel's preempt/IRQ-disable regions. > Sadly we don't have a self-measure of that around. > > So I had a poke at all this and ended up with the below. I still utterly > detest all this, but it appears to actually work -- although I don't > much see the improvement, the numbers are somewhat unstable. (I say it > works because I see the 'yield -- made it' trace_printk when I do it > right and the 'timeout -- force resched' when I do it 'wrong'. > > This thing works across the board and gives userspace 50usec, equal to > what the kernel already imposes on (on the IVB). > > I simply took a bit from the existing flags field, and userspace can use > BTR to test if the kernel cleared it -- in which case it needs yield > (and not any other syscall). > > Additinally doing a syscall with the bit set will SIGSEGV (when > DEBUG_RSEQ). > Thanks for looking into this even though you detest it ;-) Unfortunately, now that the merge window has opened (and someone reported a bug in my code from linux-next :-( ), I need to take a step back from this and may not be able to work on it again until plumbers. By then, I hope to have time to dig deeper into what you have done here. Thanks again Peter! -- Steve