On 04/15/2018 02:16 PM, Vincent Guittot wrote:
On 15 April 2018 at 13:58, Dietmar Eggemann <dietmar.eggem...@arm.com> wrote:
On 03/16/2018 12:25 PM, Vincent Guittot wrote:

We want to track rt_rq's utilization as a part of the estimation of the
whole rq's utilization. This is necessary because rt tasks can steal
utilization to cfs tasks and make them lighter than they are.
As we want to use the same load tracking mecanism for both and prevent
useless dependency between cfs and rt code, pelt code is moved in a
dedicated file.


This would mean that we introduce function calls into the cfs scheduler
fast-path, something we avoided so far (e.g. the cpu and frequency
invariance hooks). Are we OK with that?

Quentin mentioned this already during v3 review back in December.

Yes and I hadn't seen any differences in the code size with the patch
which should have been the case if inline function where replaced by
function call

I see a diff (e.g. for arm64 defconfig):

6d626e0aaf91 - (HEAD -> tip/sched/core_rt_rq_util_tracking) sched/nohz: monitor rt utilization (2018-04-15 Vincent Guittot) 3111c6206f0c - cpufreq/schedutil: add rt utilization tracking (2018-04-15 Vincent Guittot) 62e103d266ed - sched/rt: add rt_rq utilization tracking (2018-04-15 Vincent Guittot) 8f78fef6b1a2 - sched/pelt: Move pelt related code in a dedicated file (2018-04-15 Vincent Guittot) 31e77c93e432 - (tip/sched/core_rt_rq_util_tracking_base) sched/fair: Update blocked load when newly idle (2018-03-09 Vincent Guittot)

deggeman-mac:/opt/git/kernel_org:tip/sched/core_rt_rq_util_tracking$ size vmlinux
   text    data     bss     dec     hex filename
11286856        6154896  410296 17852048        1106690 vmlinux

versus:

31e77c93e432 - (HEAD -> tip/sched/core_rt_rq_util_tracking_base) sched/fair: Update blocked load when ne$
ly idle (2018-03-09 Vincent Guittot)

deggeman-mac:/opt/git/kernel_org:tip/sched/core_rt_rq_util_tracking_base$ size vmlinux text data bss dec hex filename
11295048        6154896  410296 17860240        1108690 vmlinux

So I assume that in kernel/sched/fair.o:

U __update_load_avg_blocked_se
U __update_load_avg_cfs_rq
U __update_load_avg_se

are function calls now.






Reply via email to