Hi, On 1/27/20 10:54 PM, lukasz.luba@xxxxxxx wrote: > From: Lukasz Luba <lukasz.luba@xxxxxxx> > > 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. 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. > > Some test results, which stress the scheduler on Odroid-XU3: > hackbench -l 500 -s 4096 > With mainline code and with this patch set. > > 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 > |-----------------------------------------------|--------------- > | 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 Would you happen to have measurements of how much power is saved by running hackbench using "SchedUtil governor w/ EAS" instead of "SchedUtil governor w/o EAS"? Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics > Signed-off-by: Lukasz Luba <lukasz.luba@xxxxxxx> > --- > arch/arm/configs/exynos_defconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_defconfig > index 1db857056992..c0f8ecabc607 100644 > --- a/arch/arm/configs/exynos_defconfig > +++ b/arch/arm/configs/exynos_defconfig > @@ -18,6 +18,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 > CONFIG_ARM_APPENDED_DTB=y > CONFIG_ARM_ATAG_DTB_COMPAT=y > CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M" > +CONFIG_ENERGY_MODEL=y > CONFIG_CPU_FREQ=y > CONFIG_CPU_FREQ_STAT=y > CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y