3 ms·
Userspace programs already can choose what very vague preferences they have, using the taskset (processor affinity), nice and ionice commands. But the main pro
by ProblemFactory 14y ago
Userspace programs already can choose what very vague preferences they have, using the taskset (processor affinity), nice and ionice commands.
But the main problem is that workloads are very complex, and often changing. A single userspace program is not even aware of other programs running on the machine, nor how the user thinks they should be prioritised.
If you are compiling something, do you want to to finish ASAP or a bit slower in the background without desktop sluggishness? What priority should a minimised browser window have at the same time? What if that browser window is also playing music from youtube?
At the moment, the scheduling hints that users can figure out is marking some processes as low-priority background tasks. Optimal scheduler tuning is too complex, because starting or quitting any application can completely change the optimal resource usage, and users only have a vague idea of what they expect from the scheduler ("everything should be fast").