[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <db3f2554-288d-81ab-2373-1447367ba673@arm.com>
Date: Fri, 31 Jan 2020 17:30:46 +0000
From: Lukasz Luba <lukasz.luba@....com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: kgene@...nel.org, linux-arm-kernel@...ts.infradead.org,
"linux-samsung-soc@...r.kernel.org"
<linux-samsung-soc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
devicetree@...r.kernel.org, linux-pm@...r.kernel.org,
myungjoo.ham@...sung.com, kyungmin.park@...sung.com,
Chanwoo Choi <cw00.choi@...sung.com>, robh+dt@...nel.org,
mark.rutland@....com,
Bartłomiej Żołnierkiewicz
<b.zolnierkie@...sung.com>, dietmar.eggemann@....com
Subject: Re: [PATCH 3/3] ARM: exynos_defconfig: Enable Energy Model framework
Hi Krzysztof,
On 1/31/20 1:16 PM, Krzysztof Kozlowski wrote:
> On Mon, 27 Jan 2020 at 22:55, <lukasz.luba@....com> wrote:
>>
>> From: Lukasz Luba <lukasz.luba@....com>
>>
>> Enable the Energy Model (EM) brings possibility to use Energy Aware
>> Scheduler (EAS). This compiles the EM but does not enable to run EAS in
>> default. The EAS only works with SchedUtil - a CPUFreq governor which
>> handles direct requests from the scheduler for the frequency change. Thus,
>> to make EAS working in default, the SchedUtil governor should be
>> configured as default CPUFreq governor.
>
> Full stop. That's enough of needed explanation of schedutil.
OK
>
>> Although, the EAS might be enabled
>> in runtime, when the EM is present for CPUs, the SchedUtil is compiled and
>> then set as CPUFreq governor, i.e.:
>>
>> echo schedutil > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
>> echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
>>
>> To check if EAS is ready to work, the read output from the command below
>> should show '1':
>> cat /proc/sys/kernel/sched_energy_aware
>>
>> To disable EAS in runtime simply 'echo 0' to the file above.
>
> Not related to this commit. If you were implemeting here
> schedutil/EAS, then it makes sense to post all this. However what's
> the point to describe it in every defconfig change?
I will drop it.
>
>> Some test results, which stress the scheduler on Odroid-XU3:
>> hackbench -l 500 -s 4096
>> With mainline code and with this patch set.
>
> Skip the last sentence - duplicated information.
OK
>
>>
>> The tests have been made with and without CONFIG_PROVE_LOCKING (PL)
>> (which is set to =y in default exynos_defconfig)
>>
>> | this patch set | mainline
>
> The commit will be applied on its own branch so the meaning of "this
> patch set" will be lost. Maybe just "before/after"?
OK
>
>> |-----------------------------------------------|---------------
>> | performance | SchedUtil | SchedUtil | performance
>> | governor | governor | governor | governor
>> | | w/o EAS | w/ EAS |
>> ----------------|---------------|---------------|---------------|---------------
>> hackbench w/ PL | 12.7s | 11.7s | 12.0s | 13.0s - 12.2s
>> hackbench w/o PL| 9.2s | 8.1s | 8.2s | 9.2s - 8.4s
>
> Why does the performance different before and after this patch?
Probably due to better locality and cache utilization. I can see that
there is ~700k context switches vs ~450k and ~160k migrations vs ~50k.
If you need to communicate two threads in different clusters, it will go
through CCI.
>
> Mention - lower better (?). Space between number and unit... or better
> mention [s] in column title.
OK
>
> And last but not least:
> Why this patch is separate from 1/3? I don't get the need of splitting them.
As mentioned in response to patch 1/3. The fist patch would create MC
domain, something different than Energy Model or EAS. The decisions in
the scheduler would be different.
I can merge 1/3 and 3/3 if you like, though.
Regards,
Lukasz
>
> Best regards,
> Krzysztof
>
Powered by blists - more mailing lists