On Fri, Jul 05, 2019 at 11:16:31PM -0700, Paul E. McKenney wrote: > I suppose RCU could take the dueling-banjos approach and use increasingly > aggressive scheduler policies itself, up to and including SCHED_DEADLINE, > until it started getting decent forward progress. However, that > sounds like the something that just might have unintended consequences, > particularly if other kernel subsystems were to also play similar > games of dueling banjos. So long as the RCU threads are well-behaved, using SCHED_DEADLINE shouldn't have much of an impact on the system --- and the scheduling parameters that you can specify on SCHED_DEADLINE allows you to specify the worst-case impact on the system while also guaranteeing that the SCHED_DEADLINE tasks will urn in the first place. After all, that's the whole point of SCHED_DEADLINE. So I wonder if the right approach is during the the first userspace system call to shced_setattr to enable a (any) real-time priority scheduler (SCHED_DEADLINE, SCHED_FIFO or SCHED_RR) on a userspace thread, before that's allowed to proceed, the RCU kernel threads are promoted to be SCHED_DEADLINE with appropriately set deadline parameters. That way, a root user won't be able to shoot the system in the foot, and since the vast majority of the time, there shouldn't be any processes running with real-time priorities, we won't be changing the behavior of a normal server system. (I suspect there might be some audio applications that might try to set real-time priorities, but for desktop systems, it's probably more important that the system not tie its self into knots since the average desktop user isn't going to be well equipped to debug the problem.) > Alternatively, is it possible to provide stricter admission control? I think that's an orthogonal issue; better admission control would be nice, but it looks to me that it's going to be fundamentally an issue of tweaking hueristics, and a fool-proof solution that will protect against all malicious userspace applications (including syzkaller) is going to require solving the halting problem. So while it would be nice to improve the admission control, I don't think that's a going to be a general solution. - Ted