Files
Peter Zijlstra b9986c3837 sched/fair: Propagate an effective runnable_load_avg
The load balancer uses runnable_load_avg as load indicator. For
!cgroup this is:

  runnable_load_avg = \Sum se->avg.load_avg ; where se->on_rq

That is, a direct sum of all runnable tasks on that runqueue. As
opposed to load_avg, which is a sum of all tasks on the runqueue,
which includes a blocked component.

However, in the cgroup case, this comes apart since the group entities
are always runnable, even if most of their constituent entities are
blocked.

Therefore introduce a runnable_weight which for task entities is the
same as the regular weight, but for group entities is a fraction of
the entity weight and represents the runnable part of the group
runqueue.

Then propagate this load through the PELT hierarchy to arrive at an
effective runnable load avgerage -- which we should not confuse with
the canonical runnable load average.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Helium-Studio <67852324+Helium-Studio@users.noreply.github.com>
2024-08-12 21:00:31 +03:00
..
2020-04-02 16:34:33 +02:00
2018-07-05 11:40:21 -07:00
2018-09-13 20:54:59 -07:00
2020-06-24 22:03:37 -07:00
2023-03-21 13:29:19 +02:00
2019-05-08 13:28:35 +05:30
2020-01-07 14:55:45 -08:00
2018-05-29 10:26:51 +05:30
2022-01-22 14:28:43 +00:00
2018-06-29 14:55:49 -07:00
2020-07-22 09:22:29 +02:00
2018-05-09 11:37:13 -07:00
2018-02-08 19:42:55 -08:00