On 27/03/17 18:50, Peter Zijlstra wrote: > On Fri, Mar 24, 2017 at 02:08:58PM +0000, Juri Lelli wrote: > > Worker kthread needs to be able to change frequency for all other > > threads. > > > > Make it special, just under STOP class. > > *yuck* ;-) >
Eh, I know. :/ > So imagine our I2C/SPI bus is 'busy' and its mutex taken, then this > 'soecial' task will need to boost it. Now add BWI to your thinking and > shudder. > Currently that kthread is FIFO already, so boosting still applies. Not as bad as in the BWI case though. More thinking required. > > On IRC broonie mentioned that: > > - most PMIC operations are fire and forget (no need to wait for a > response). > - PMIC 'packets' are 'small'. > - SPI has the possibility to push stuff on the queue. > > Taken together this seems to suggest we can rework cpufreq drivers to > function in-context, either directly push the packet on the bus if > available, or queue it and let whoever owns it sort it without blocking. > > It might be possible to rework/augment I2C to also support pushing stuff > on a queue. > > > So if we can make all that work, we can do away with this horrible > horrible kthread. Which is, IMO, a much better solution. > > Thoughts? Right. This is more a schedutil (cpufreq) problem though, IMHO. Even if I agree that what you are proposing is way more clean (and here I actually assume it's feasible at all), I fear it will take quite some time to get reworked. Do we want to wait until that moment to get DEADLINE contribution accounted for? :( Thanks, - Juri

