From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EEFE1C433E6 for ; Mon, 22 Feb 2021 11:02:01 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 A0AF164E3F for ; Mon, 22 Feb 2021 11:02:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A0AF164E3F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=M/L0AId+XLmEbmp4eljJEAq4GWOFwnUrIYPCZiECHEU=; b=tH+NM2AKJU1GwYx9l3fQnd2MK 57stR53tyxzITAo8Z3UmEJ9zUJKLnz2ULwsRtpu+DR/xh31ZCbN9C2pm/Yfi22h/tExjhmTnhNVRK O2a6p/W5UbM7CSO8yDyxzADNp5OmHnl/cqB1pqgTZWwPEL9OAfb+rlqzYmuFKGp7x5IEXjI7WUKwK B7iU18WuWHSe4OIARfUsjlXVkl7xYrFmJvcbs31MkcK1DhpFUPrpPoDoCegzMNE5XMSwFubiKNBKq /xRYUmkqzakOCU6FJhwB4FRTjc1yjDJ0z+vpfcHgmDhR9tpxmOyzGWu6ogIk8TZ1xibD6D6NzRGXO 0dEebUaoQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lE8x9-0002Cd-A4; Mon, 22 Feb 2021 11:00:35 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lE8x6-0002CA-3S for linux-arm-kernel@lists.infradead.org; Mon, 22 Feb 2021 11:00: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 B22E31FB; Mon, 22 Feb 2021 03:00:25 -0800 (PST) Received: from localhost (e108754-lin.cambridge.arm.com [10.1.195.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 508203F73B; Mon, 22 Feb 2021 03:00:25 -0800 (PST) Date: Mon, 22 Feb 2021 11:00:23 +0000 From: Ionela Voinescu To: Viresh Kumar Subject: Re: [PATCH V3 2/2] cpufreq: cppc: Add support for frequency invariance Message-ID: <20210222110023.GB4499@arm.com> References: <59f48538545d080cb1c7b201d2d779ab513d2c0c.1611829953.git.viresh.kumar@linaro.org> <20210218163538.GA3105@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210218163538.GA3105@arm.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210222_060032_262689_17F03C9B X-CRM114-Status: GOOD ( 12.22 ) 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: Vincent Guittot , linux-pm@vger.kernel.org, Catalin Marinas , Rafael Wysocki , linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Sudeep Holla , Will Deacon , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hey, Some test results: On Thursday 18 Feb 2021 at 16:35:38 (+0000), Ionela Voinescu wrote: [..] > > +static void __init cppc_freq_invariance_init(void) > > +{ [..] > > + > > + ret = cppc_get_perf_ctrs(i, &fb_ctrs); > > + if (!ret) > > + per_cpu(cppc_fi->prev_perf_fb_ctrs, i) = fb_ctrs; > After fixing this one: cppc_fi->prev_perf_fb_ctrs = fb_ctrs; I got the following: Platform: - Juno R2 (CPUs [0-3] are littles, CPUs [4-5] are bigs) + PMU counters, used by CPPC through FFH + userspace/schedutil - Verifying that with userspace governor we see a correct change in scale factor: root@buildroot:~# dmesg | grep FIE [ 6.436770] AMU: CPUs[0-3]: AMU counters WON'T be used for FIE. [ 6.436962] AMU: CPUs[4-5]: AMU counters WON'T be used for FIE. [ 6.451510] CPPC:CPUs[0-5]: CPPC counters will be used for FIE. root@buildroot:~# echo 600000 > policy4/scaling_setspeed [ 353.939495] CPU4: Invariance(cppc) scale: 512. [ 353.939497] CPU5: Invariance(cppc) scale: 512. root@buildroot:~# echo 1200000 > policy4/scaling_setspeed [ 372.683511] CPU5: Invariance(cppc) scale: 1024. [ 372.683518] CPU4: Invariance(cppc) scale: 1024. root@buildroot:~# echo 450000 > policy0/scaling_setspeed [ 641.495513] CPU2: Invariance(cppc) scale: 485. [ 641.495514] CPU1: Invariance(cppc) scale: 485. [ 641.495517] CPU0: Invariance(cppc) scale: 485. [ 641.495542] CPU3: Invariance(cppc) scale: 485. root@buildroot:~# echo 950000 > policy0/scaling_setspeed [ 852.015514] CPU2: Invariance(cppc) scale: 1024. [ 852.015514] CPU1: Invariance(cppc) scale: 1024. [ 852.015517] CPU0: Invariance(cppc) scale: 1024. [ 852.015541] CPU3: Invariance(cppc) scale: 1024. - I ran some benchmarks as well (perf, hackbench, dhrystone) on the same platform, using the userspace governor at fixed frequency, to evaluate the impact of the work we do or don't do on the tick. ./perf bench sched pipe (10 iterations, higher is better, ops/s, comparisons with cpufreq-based FIE) cpufreq-based FIE AMU-based FIE CPPC-based FIE ---------------------------------------------------- 39498.8 40984.7 38893.4 std: 3.766% std: 4.461% std: 0.575% diff: 3.625% diff: -1.556% ./hackbench -l 1000 (10 iterations, lower is better, seconds, comparison with cpufreq-based FIE) cpufreq-based FIE AMU-based FIE CPPC-based FIE ---------------------------------------------------- 6.4207 6.3386 6.7841 std: 7.298% std: 2.252% std: 2.460% diff: -1.295% diff: 5.356% This shows a small regression for the CPPC-based FIE, but within the standard deviation. I ran some dhrystone benchmarks (./dhrystone -t 2/34/5/6/ -l 5000) as well with schedutil governor to understand if an increase in accuracy with the AMU/CPPC counters makes a difference. Given the characteristics of the platform it's no surprise that the results were very similar between the three cases, so I won't bore you with the numbers. Hope it helps, Ionela. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel