On 25/03/2024 02:37, Qais Yousef wrote: > On 03/18/24 18:08, Rafael J. Wysocki wrote: >> On Mon, Mar 18, 2024 at 5:40 PM Christian Loehle >> <christian.loehle@xxxxxxx> wrote: >>> >>> On 18/03/2024 14:07, Rafael J. Wysocki wrote: >>>> On Mon, Mar 4, 2024 at 9:17 PM Christian Loehle >>>> <christian.loehle@xxxxxxx> wrote: >>>>> >>>>> The previous commit provides a new cpu_util_cfs_boost_io interface for >>>>> schedutil which uses the io boosted utilization of the per-task >>>>> tracking strategy. Schedutil iowait boosting is therefore no longer >>>>> necessary so remove it. >>>> >>>> I'm wondering about the cases when schedutil is used without EAS. >>>> >>>> Are they still going to be handled as before after this change? >>> >>> Well they should still get boosted (under the new conditions) and according >>> to my tests that does work. >> >> OK >> >>> Anything in particular you're worried about? >> >> It is not particularly clear to me how exactly the boost is taken into >> account without EAS. >> >>> So in terms of throughput I see similar results with EAS and CAS+sugov. >>> I'm happy including numbers in the cover letter for future versions, too. >>> So far my intuition was that nobody would care enough to include them >>> (as long as it generally still works). >> >> Well, IMV clear understanding of the changes is more important. > > I think the major thing we need to be careful about is the behavior when the > task is sleeping. I think the boosting will be removed when the task is > dequeued and I can bet there will be systems out there where the BLOCK softirq > being boosted when the task is sleeping will matter. Currently I see this mainly protected by the sugov rate_limit_us. With the enqueue's being the dominating cpufreq updates it's not really an issue, the boost is expected to survive the sleep duration, during which it wouldn't be active. I did experiment with some sort of 'stickiness' of the boost to the rq, but it is somewhat of a pain to deal with if we want to remove it once enqueued on a different rq. A sugov 1ms timer is much simpler of course. Currently it's not necessary IMO, but for the sake of being future-proof in terms of more frequent freq updates I might include it in v2. > > FWIW I do have an implementation for per-task iowait boost where I went a step > further and converted intel_pstate too and like Christian didn't notice > a regression. But I am not sure (rather don't think) I triggered this use case. > I can't tell when the systems truly have per-cpu cpufreq control or just appear > so and they are actually shared but not visible at linux level. Please do share your intel_pstate proposal! Kind Regards, Christian