Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH] sched/fair: improve spreading of utilization | Date | Fri, 13 Mar 2020 15:47:17 +0000 |
| |
On Fri, Mar 13 2020, Vincent Guittot wrote: >> > And with more coffee that's another Doh, ASYM_PACKING would end up as >> > migrate_task. So this only affects the reduced capacity migration, which >> >> yes ASYM_PACKING uses migrate_task and the case of reduced capacity >> would use it too and would not be impacted by this patch. I say >> "would" because the original rework of load balance got rid of this >> case. I'm going to prepare a separate fix for this > > After more thought, I think that we are safe for reduced capacity too > because this is handled in the migrate_load case. In my previous > reply, I was thinking of the case where rq is not overloaded but cpu > has reduced capacity which is not handled. But in such case, we don't > have to force the migration of the task because there is still enough > capacity otherwise rq would be overloaded and we are back to the case > already handled >
Good point on the capacity reduction vs group_is_overloaded.
That said, can't we also reach this with migrate_task? Say the local group is entirely idle, and the busiest group has a few non-idle CPUs but they all have at most 1 running task. AFAICT we would still go to calculate_imbalance(), and try to balance out the number of idle CPUs.
If the migration_type is migrate_util, that can't happen because of this change. Since we have this progressive balancing strategy (tasks -> util -> load), it's a bit odd to have this "gap" in the middle where we get one less possibility to trigger active balance, don't you think? That is, providing I didn't say nonsense again :)
It's not a super big deal, but I think it's nice if we can maintain a consistent / gradual migration policy.
>> >> > might be hard to notice in benchmarks.
| |