Toward better CPU load estimation
lwn.net
lwn.net
Isn't the obvious solution to just give a boost to a process that receives user input and/or that is launched by a process receiving user input? (I believe Windows does this?) Why isn't Linux doing this?
It is also highly unnecessary. If you have preemptible kernel, standard task start handling puts new tasks on top of their parents tree of tasks to be scheduled. (Tunable in sysfs.) If there is no restart, boost shouldn't be necessary on a preemptible kernel anyway, especially rt enabled ones, as lock holders on input will get woken up.
About the only place where it is useful is in boosting cpu clocks. This is also where it breaks timings the most.
This is true, but it is still absolutely critical for making Android usable. If you disable boosting i.e. allow tasks to take several frame refresh periods to accumulate load and bring the CPU freq up, you get a really painful UX.
Conservative cpufreq uses load. Ondemand only sort of does.
The problem still remains getting predictable tick timings working well. (not missing deadlines)
A process that sometimes, but not all the time, uses a lot of cpu time is considered interactive and prioritized accordingly.