From patchwork Mon Jan 27 21:54:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Luba X-Patchwork-Id: 11353293 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 04D301580 for ; Mon, 27 Jan 2020 21:55:38 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D691D21739 for ; Mon, 27 Jan 2020 21:55:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YLlwtVjc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D691D21739 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=tiKrAsgYxMtn4e9mU8zJN3XwXXd7SGJ3Q5coEZj14IA=; b=YLlwtVjc+Dq6XiOQluOvns6fG7 5HI4U3mAOJ7PJEReftbCKJNbzYPYAptZwVtk3WRg2M8d+Wce6tHU/C2kPBzOmDHYbOMZyFmqhSJ9Q W7WRnvkkkZUD/MpU0TXVnM7M1N/vxs9yeB0MgY02kZiMESZpZPyaG/8qyrMdQTgQ//JKOWLpfcnO3 U51wG68c6kjS765XrpC/7UxIemk86LOv0CGQjJdfVuj+5FOxIo9/WNoR2EyL8QNeOSeSlbvevF5Am 8GHTHiyRDvQGG36r/T9b+eBajVlD59aiAwAJDtp2hvpZetpebyeFx2O/9PwW9IJi6O0BeHWz8VCQ7 6xVjbctg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwCM4-0008FM-7o; Mon, 27 Jan 2020 21:55:36 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwCLv-00087A-4E for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 21:55:28 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C957B101E; Mon, 27 Jan 2020 13:55:24 -0800 (PST) Received: from e123648.arm.com (unknown [10.37.12.150]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 214493F68E; Mon, 27 Jan 2020 13:55:18 -0800 (PST) From: lukasz.luba@arm.com To: kgene@kernel.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 1/3] ARM: exynos_defconfig: Enable SCHED_MC Date: Mon, 27 Jan 2020 21:54:51 +0000 Message-Id: <20200127215453.15144-2-lukasz.luba@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200127215453.15144-1-lukasz.luba@arm.com> References: <20200127215453.15144-1-lukasz.luba@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200127_135527_206120_AD7859A6 X-CRM114-Status: UNSURE ( 8.90 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [217.140.110.172 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, b.zolnierkie@samsung.com, robh+dt@kernel.org, cw00.choi@samsung.com, kyungmin.park@samsung.com, myungjoo.ham@samsung.com, dietmar.eggemann@arm.com, lukasz.luba@arm.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Lukasz Luba Since the 'capacities-dmips-mhz' are present in the CPU nodes, make use of this knowledge in smarter decisions during scheduling. The values in 'capacities-dmips-mhz' are normilized, this means that i.e. when CPU0's capacities-dmips-mhz=100 and CPU1's 'capacities-dmips-mhz'=50, cpu0 is twice fast as CPU1, at the same frequency. The proper hirarchy in sched_domain topology could exploit the SoC architecture advantages like big.LITTLE. Enabling the SCHED_MC will create two levels in sched_domain hierarchy, which might be observed in: grep . /proc/sys/kernel/sched_domain/cpu*/domain*/{name,flags} /proc/sys/kernel/sched_domain/cpu0/domain0/name:MC /proc/sys/kernel/sched_domain/cpu0/domain1/name:DIE ... /proc/sys/kernel/sched_domain/cpu0/domain0/flags:575 /proc/sys/kernel/sched_domain/cpu0/domain1/flags:4223 Signed-off-by: Lukasz Luba --- 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 e7e4bb5ad8d5..1db857056992 100644 --- a/arch/arm/configs/exynos_defconfig +++ b/arch/arm/configs/exynos_defconfig @@ -8,6 +8,7 @@ CONFIG_PERF_EVENTS=y CONFIG_ARCH_EXYNOS=y CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND=y CONFIG_SMP=y +CONFIG_SCHED_MC=y CONFIG_BIG_LITTLE=y CONFIG_NR_CPUS=8 CONFIG_HIGHMEM=y From patchwork Mon Jan 27 21:54:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Luba X-Patchwork-Id: 11353299 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A59DD1580 for ; Mon, 27 Jan 2020 21:55:59 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 83E1E24679 for ; Mon, 27 Jan 2020 21:55:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="B4IcLifJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83E1E24679 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=PuB57Hw3OLUjxwbz0Gk80HVE3glpfX8qi3tEzRjtrtY=; b=B4IcLifJXMnHEXBBXVgeJR6Hzk 1Aa04op5kxwlMgsr6Z0XSAfj1LRWLXfNLmsGHJcRfKTe9/Xl5VJ9KEUmBU4/9do4m/PAs/2iX2B0Q dwxynFrGjqQ/kYYr/kT+yxi/xffDp29SRLOfy/B1HhxNmeK2Cb1vVDJ8WBMHEwTfnljV/qRodudxL K9jdPvnf4ErT6sORCOIgw8yiO11ySIxdQTKMokz8XRTMLkMoqfflszlbOk9ZVAKL4p5T8C5T5vRGw sBbqQWOyuTJC7WYqmIdtZPa8Q6cGsDP0aNym/inKBOmmUcVgXMSJKqkHC/v6kiZiRMngR8eFEuDRp WQC5zCXg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwCMP-00007P-QN; Mon, 27 Jan 2020 21:55:57 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwCLy-00089P-9r for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 21:55:32 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4342131B; Mon, 27 Jan 2020 13:55:29 -0800 (PST) Received: from e123648.arm.com (unknown [10.37.12.150]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 45D5F3F68E; Mon, 27 Jan 2020 13:55:25 -0800 (PST) From: lukasz.luba@arm.com To: kgene@kernel.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 2/3] ARM: dts: exynos: Add Exynos5422 CPU dynamic-power-coefficient information Date: Mon, 27 Jan 2020 21:54:52 +0000 Message-Id: <20200127215453.15144-3-lukasz.luba@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200127215453.15144-1-lukasz.luba@arm.com> References: <20200127215453.15144-1-lukasz.luba@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200127_135530_467968_42EF10F9 X-CRM114-Status: GOOD ( 10.89 ) X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [217.140.110.172 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, b.zolnierkie@samsung.com, robh+dt@kernel.org, cw00.choi@samsung.com, kyungmin.park@samsung.com, myungjoo.ham@samsung.com, dietmar.eggemann@arm.com, lukasz.luba@arm.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Lukasz Luba Add dynamic power coefficient into CPU nodes which let CPUFreq subsystem register the Energy Model (EM) for the CPUs. The 'dynamic-power-coefficient' is used for calculating the dynamic power according to the equation in documentation [1]. The Energy Model (EM) framework relies on calculated power and cost for each OPP. The OPP power values come from CPUFreq driver, which registered required callback function. The simple implementation of a CPUFREQ driver, like cpufreq-dt, uses 'dev_pm_opp_of_register_em()' which relay on 'dynamic-power-coefficient' to calculate the power of requested OPP for the EM [2]. The calculated values might be checked in /sys/kernel/debug/energy_model/pd*/ $ grep . /sys/kernel/debug/energy_model/pd1/cs*/* /sys/kernel/debug/energy_model/pd1/cs:1000000/cost:558 /sys/kernel/debug/energy_model/pd1/cs:1000000/frequency:1000000 /sys/kernel/debug/energy_model/pd1/cs:1000000/power:310 /sys/kernel/debug/energy_model/pd1/cs:1100000/cost:558 /sys/kernel/debug/energy_model/pd1/cs:1100000/frequency:1100000 /sys/kernel/debug/energy_model/pd1/cs:1100000/power:341 /sys/kernel/debug/energy_model/pd1/cs:1200000/cost:558 /sys/kernel/debug/energy_model/pd1/cs:1200000/frequency:1200000 /sys/kernel/debug/energy_model/pd1/cs:1200000/power:372 /sys/kernel/debug/energy_model/pd1/cs:1300000/cost:674 /sys/kernel/debug/energy_model/pd1/cs:1300000/frequency:1300000 /sys/kernel/debug/energy_model/pd1/cs:1300000/power:487 /sys/kernel/debug/energy_model/pd1/cs:1400000/cost:675 ... $ grep . /sys/kernel/debug/energy_model/pd0/cs*/* /sys/kernel/debug/energy_model/pd0/cs:1000000/cost:200 /sys/kernel/debug/energy_model/pd0/cs:1000000/frequency:1000000 /sys/kernel/debug/energy_model/pd0/cs:1000000/power:154 /sys/kernel/debug/energy_model/pd0/cs:1100000/cost:260 /sys/kernel/debug/energy_model/pd0/cs:1100000/frequency:1100000 /sys/kernel/debug/energy_model/pd0/cs:1100000/power:220 /sys/kernel/debug/energy_model/pd0/cs:1200000/cost:260 /sys/kernel/debug/energy_model/pd0/cs:1200000/frequency:1200000 /sys/kernel/debug/energy_model/pd0/cs:1200000/power:240 /sys/kernel/debug/energy_model/pd0/cs:1300000/cost:260 /sys/kernel/debug/energy_model/pd0/cs:1300000/frequency:1300000 /sys/kernel/debug/energy_model/pd0/cs:1300000/power:260 /sys/kernel/debug/energy_model/pd0/cs:200000/cost:130 ... To provide a proper value of the 'dynamic-power-coefficient' the real power can be measured using a dedicated hardware, i.e. INA2xx. The Odroid-XU3 hwmon sensors have been used to capture the power value during a sysbench test running on single core and at each possible OPP. The measured values were divided by 2, since the dynamic power is typically half of the consumed power (the second half is static power). Next, the approximation was made and the power model derived, showing the 'C' value of routhly X. Check the example equations in drivers/opp/of.c [2]. Thus, i.e. the power = 1.0Watt at 1GHz => 0.5W dynamic power => dynamic-power-coefficient = 400 Using this simple technique we can provide and needed coefficient. The approximation does not have to be super precised. The proportion is important and the difference between power consumed by different CPUs running at the same frequency, which is then used in Energy Aware Scheduler algorithms. An example power values on Odroid-XU3: (LITTLE CPU) /sys/kernel/debug/energy_model/pd0/cs:1000000/frequency:1000000 /sys/kernel/debug/energy_model/pd0/cs:1000000/power:154 (big CPU) /sys/kernel/debug/energy_model/pd1/cs:1000000/frequency:1000000 /sys/kernel/debug/energy_model/pd1/cs:1000000/power:310 In Odroid-XU3 case the derived coefficient value for 'big' CPU has: dynamic-power-coefficient = <310>; while the 'LITTLE': dynamic-power-coefficient = <128>; [1] Documentation/devicetree/bindings/arm/cpus.yaml [2] https://elixir.bootlin.com/linux/v5.4/source/drivers/opp/of.c#L1044 Signed-off-by: Lukasz Luba --- arch/arm/boot/dts/exynos5422-cpus.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/exynos5422-cpus.dtsi b/arch/arm/boot/dts/exynos5422-cpus.dtsi index 1b8605cf2407..c9a0dc99d2fb 100644 --- a/arch/arm/boot/dts/exynos5422-cpus.dtsi +++ b/arch/arm/boot/dts/exynos5422-cpus.dtsi @@ -31,6 +31,7 @@ operating-points-v2 = <&cluster_a7_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <539>; + dynamic-power-coefficient = <128>; }; cpu1: cpu@101 { @@ -43,6 +44,7 @@ operating-points-v2 = <&cluster_a7_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <539>; + dynamic-power-coefficient = <128>; }; cpu2: cpu@102 { @@ -55,6 +57,7 @@ operating-points-v2 = <&cluster_a7_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <539>; + dynamic-power-coefficient = <128>; }; cpu3: cpu@103 { @@ -67,6 +70,7 @@ operating-points-v2 = <&cluster_a7_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <539>; + dynamic-power-coefficient = <128>; }; cpu4: cpu@0 { @@ -79,6 +83,7 @@ operating-points-v2 = <&cluster_a15_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <1024>; + dynamic-power-coefficient = <310>; }; cpu5: cpu@1 { @@ -91,6 +96,7 @@ operating-points-v2 = <&cluster_a15_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <1024>; + dynamic-power-coefficient = <310>; }; cpu6: cpu@2 { @@ -103,6 +109,7 @@ operating-points-v2 = <&cluster_a15_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <1024>; + dynamic-power-coefficient = <310>; }; cpu7: cpu@3 { @@ -115,6 +122,7 @@ operating-points-v2 = <&cluster_a15_opp_table>; #cooling-cells = <2>; /* min followed by max */ capacity-dmips-mhz = <1024>; + dynamic-power-coefficient = <310>; }; }; }; From patchwork Mon Jan 27 21:54:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Luba X-Patchwork-Id: 11353301 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6EE1B1580 for ; Mon, 27 Jan 2020 21:56:09 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3621E21739 for ; Mon, 27 Jan 2020 21:56:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jVcigjmO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3621E21739 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=NnUQhb9k2LTZpp17lmuXQLRLtSoIT9mbIuLFJPM9oUY=; b=jVcigjmOE/HaXjFnBCsrVAgObw 6bRGf2MI91ZakPO0RiQJmwpWmWBmAjsLMsMTbrtGdgTNKrH75x/QgU73TZPu+D84LimNAC7pN6VIY gdtmw2IVMMlIK7qPFZmU9y+HQMwVkUnAUAh2K7vHHU6SdwtBUSKAu1J1aZyGw6O6ovKjNbMeLln75 Ixj2Y8KOkmy5ODbovStQetGleAghFPzNtjJowxRoyPtrB7sPfiKNN5i87UfuT+RVb8KpfTESTFyWR KCK1M4kk+FPJb29L9xWsp73nZUaYT0N65aAUxrMvhsGU7MTwMJnySJdjVOJAYi/3d84lEIK0cADoi 3JJY71qQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwCMZ-0000Ka-Tb; Mon, 27 Jan 2020 21:56:07 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iwCM4-0008GQ-QX for linux-arm-kernel@lists.infradead.org; Mon, 27 Jan 2020 21:55:38 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1DD1031B; Mon, 27 Jan 2020 13:55:35 -0800 (PST) Received: from e123648.arm.com (unknown [10.37.12.150]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9E54B3F68E; Mon, 27 Jan 2020 13:55:29 -0800 (PST) From: lukasz.luba@arm.com To: kgene@kernel.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-pm@vger.kernel.org Subject: [PATCH 3/3] ARM: exynos_defconfig: Enable Energy Model framework Date: Mon, 27 Jan 2020 21:54:53 +0000 Message-Id: <20200127215453.15144-4-lukasz.luba@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200127215453.15144-1-lukasz.luba@arm.com> References: <20200127215453.15144-1-lukasz.luba@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200127_135536_918901_94B50ADC X-CRM114-Status: GOOD ( 11.75 ) X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [217.140.110.172 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, b.zolnierkie@samsung.com, robh+dt@kernel.org, cw00.choi@samsung.com, kyungmin.park@samsung.com, myungjoo.ham@samsung.com, dietmar.eggemann@arm.com, lukasz.luba@arm.com MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Lukasz Luba 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 Signed-off-by: Lukasz Luba --- 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