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=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham 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 2187DC2D0DB for ; Thu, 30 Jan 2020 15:49:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F1B862082E for ; Thu, 30 Jan 2020 15:49:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727186AbgA3Pt2 (ORCPT ); Thu, 30 Jan 2020 10:49:28 -0500 Received: from foss.arm.com ([217.140.110.172]:54636 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726948AbgA3Pt2 (ORCPT ); Thu, 30 Jan 2020 10:49:28 -0500 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 5867731B; Thu, 30 Jan 2020 07:49:25 -0800 (PST) Received: from localhost (unknown [10.1.198.81]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ED9E53F67D; Thu, 30 Jan 2020 07:49:24 -0800 (PST) Date: Thu, 30 Jan 2020 15:49:23 +0000 From: Ionela Voinescu To: Valentin Schneider Cc: catalin.marinas@arm.com, will@kernel.org, mark.rutland@arm.com, maz@kernel.org, suzuki.poulose@arm.com, sudeep.holla@arm.com, dietmar.eggemann@arm.com, peterz@infradead.org, mingo@redhat.com, ggherdovich@suse.cz, vincent.guittot@linaro.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 6/6] arm64: use activity monitors for frequency invariance Message-ID: <20200130154923.GB5208@arm.com> References: <20191218182607.21607-1-ionela.voinescu@arm.com> <20191218182607.21607-7-ionela.voinescu@arm.com> <96fdead6-9896-5695-6744-413300d424f5@arm.com> <3ed9af08-82ef-e30c-b1ec-3a1dac0d2091@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <3ed9af08-82ef-e30c-b1ec-3a1dac0d2091@arm.com> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-doc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org Hi Valentin, On Wednesday 29 Jan 2020 at 23:39:11 (+0000), Valentin Schneider wrote: > On 29/01/2020 17:13, Valentin Schneider wrote: > > I had a brief look at the Arm ARM, for the arch timer it says it is > > "typically in the range 1-50MHz", but then also gives an example with 20KHz > > in a low-power mode. > > > > If we take say 5GHz max CPU frequency, our lower bound for the arch timer > > (with that SCHED_CAPACITY_SCALE² trick) is about ~4.768KHz. It's not *too* > > far from that 20KHz, but I'm not sure we would actually be executing stuff > > in that low-power mode. > > > > I mixed up a few things in there; that low-power mode is supposed to do > higher increments, so it would emulate a similar frequency as the non-low-power > mode. Thus the actual frequency matters less than what is reported in CNTFRQ > (though we hope to get the behaviour we're told we should see), so we should > be quite safe from that ~5KHz value. Still, to make it obvious, I don't think > something like this would hurt: > > --- > diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c > index 9a5464c625b45..a72832093575a 100644 > --- a/drivers/clocksource/arm_arch_timer.c > +++ b/drivers/clocksource/arm_arch_timer.c > @@ -885,6 +885,17 @@ static int arch_timer_starting_cpu(unsigned int cpu) > return 0; > } > > +static int validate_timer_rate(void) > +{ > + if (!arch_timer_rate) > + return 1; > + > + /* Arch timer frequency < 1MHz is shady */ > + WARN_ON(arch_timer_rate < 1000000); > + > + return 0; > +} > + > /* > * For historical reasons, when probing with DT we use whichever (non-zero) > * rate was probed first, and don't verify that others match. If the first node > @@ -900,7 +911,7 @@ static void arch_timer_of_configure_rate(u32 rate, struct device_node *np) > arch_timer_rate = rate; > > /* Check the timer frequency. */ > - if (arch_timer_rate == 0) > + if (validate_timer_rate()) > pr_warn("frequency not available\n"); > } > > @@ -1594,7 +1605,7 @@ static int __init arch_timer_acpi_init(struct acpi_table_header *table) > * CNTFRQ value. This *must* be correct. > */ > arch_timer_rate = arch_timer_get_cntfrq(); > - if (!arch_timer_rate) { > + if (validate_timer_rate()) { > pr_err(FW_BUG "frequency not available.\n"); > return -EINVAL; > } > --- > Okay, I'll add this as a separate patch to the series and put you as author. That is if you want me to tie this check to this usecase that proves its usefulness. Otherwise it can stand on its own as well if you want to submit it separately. In regards to the ratio computation for frequency invariance where this plays a role, I'll do a check and bail out if the ratio is 0, which I'm ashamed to not have added before :). Thanks, Ionela. > > Long story short, we're probably fine, but it would nice to shove some of > > the above into comments (especially the SCHED_CAPACITY_SCALE² trick) > > 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=-2.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_DBL_ABUSE_MALW,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 0B7C8C2D0DB for ; Thu, 30 Jan 2020 15:49:33 +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 C91DC20674 for ; Thu, 30 Jan 2020 15:49:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kcVhPvf1" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C91DC20674 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+infradead-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=bombadil.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=qIlTFvp2JylskqLA3afCd89AAUqnajIRJZMdhXrx1X8=; b=kcVhPvf1U8Er2k euGEwNAUU2l+/eoYWfleHxJ0tSxm7y+QNfqLLlxuny5GM+X4lMMkuso8REaqMLS6Bgz2GXLn4rtQf r4ebave5t27GpO2hpZs58OZI5KkhiqVz758iBSnjqpKyZUtpJyQPHAxFupM5BYweMtKhUMSkKbeBV 6XkAYm4w1OtCTyrsXBcrEL5aQX1aJL08pZ6b14HHFoy6e4s4ixuCzKF0yFdlaSpHfVFMv8/t8hxh+ 9uwLBuJ7vFMtlpFukV7wdMkXJYkESJn2WyD+LNi1k0Ew0ehwLVAHHtA3yml0LrVHFry3G1sB4o/vn AxZ/T1lQ1kqo7z0VngdQ==; 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 1ixC4P-0000yP-JS; Thu, 30 Jan 2020 15:49:29 +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 1ixC4M-0000xp-27 for linux-arm-kernel@lists.infradead.org; Thu, 30 Jan 2020 15:49:27 +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 5867731B; Thu, 30 Jan 2020 07:49:25 -0800 (PST) Received: from localhost (unknown [10.1.198.81]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id ED9E53F67D; Thu, 30 Jan 2020 07:49:24 -0800 (PST) Date: Thu, 30 Jan 2020 15:49:23 +0000 From: Ionela Voinescu To: Valentin Schneider Subject: Re: [PATCH v2 6/6] arm64: use activity monitors for frequency invariance Message-ID: <20200130154923.GB5208@arm.com> References: <20191218182607.21607-1-ionela.voinescu@arm.com> <20191218182607.21607-7-ionela.voinescu@arm.com> <96fdead6-9896-5695-6744-413300d424f5@arm.com> <3ed9af08-82ef-e30c-b1ec-3a1dac0d2091@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <3ed9af08-82ef-e30c-b1ec-3a1dac0d2091@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-20200130_074926_193139_E0FD2046 X-CRM114-Status: GOOD ( 23.61 ) 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, maz@kernel.org, suzuki.poulose@arm.com, peterz@infradead.org, catalin.marinas@arm.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, mingo@redhat.com, ggherdovich@suse.cz, sudeep.holla@arm.com, will@kernel.org, dietmar.eggemann@arm.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgVmFsZW50aW4sCgpPbiBXZWRuZXNkYXkgMjkgSmFuIDIwMjAgYXQgMjM6Mzk6MTEgKCswMDAw KSwgVmFsZW50aW4gU2NobmVpZGVyIHdyb3RlOgo+IE9uIDI5LzAxLzIwMjAgMTc6MTMsIFZhbGVu dGluIFNjaG5laWRlciB3cm90ZToKPiA+IEkgaGFkIGEgYnJpZWYgbG9vayBhdCB0aGUgQXJtIEFS TSwgZm9yIHRoZSBhcmNoIHRpbWVyIGl0IHNheXMgaXQgaXMKPiA+ICJ0eXBpY2FsbHkgaW4gdGhl IHJhbmdlIDEtNTBNSHoiLCBidXQgdGhlbiBhbHNvIGdpdmVzIGFuIGV4YW1wbGUgd2l0aCAyMEtI ego+ID4gaW4gYSBsb3ctcG93ZXIgbW9kZS4KPiA+IAo+ID4gSWYgd2UgdGFrZSBzYXkgNUdIeiBt YXggQ1BVIGZyZXF1ZW5jeSwgb3VyIGxvd2VyIGJvdW5kIGZvciB0aGUgYXJjaCB0aW1lcgo+ID4g KHdpdGggdGhhdCBTQ0hFRF9DQVBBQ0lUWV9TQ0FMRcKyIHRyaWNrKSBpcyBhYm91dCB+NC43NjhL SHouIEl0J3Mgbm90ICp0b28qCj4gPiBmYXIgZnJvbSB0aGF0IDIwS0h6LCBidXQgSSdtIG5vdCBz dXJlIHdlIHdvdWxkIGFjdHVhbGx5IGJlIGV4ZWN1dGluZyBzdHVmZgo+ID4gaW4gdGhhdCBsb3ct cG93ZXIgbW9kZS4KPiA+IAo+IAo+IEkgbWl4ZWQgdXAgYSBmZXcgdGhpbmdzIGluIHRoZXJlOyB0 aGF0IGxvdy1wb3dlciBtb2RlIGlzIHN1cHBvc2VkIHRvIGRvCj4gaGlnaGVyIGluY3JlbWVudHMs IHNvIGl0IHdvdWxkIGVtdWxhdGUgYSBzaW1pbGFyIGZyZXF1ZW5jeSBhcyB0aGUgbm9uLWxvdy1w b3dlcgo+IG1vZGUuIFRodXMgdGhlIGFjdHVhbCBmcmVxdWVuY3kgbWF0dGVycyBsZXNzIHRoYW4g d2hhdCBpcyByZXBvcnRlZCBpbiBDTlRGUlEKPiAodGhvdWdoIHdlIGhvcGUgdG8gZ2V0IHRoZSBi ZWhhdmlvdXIgd2UncmUgdG9sZCB3ZSBzaG91bGQgc2VlKSwgc28gd2Ugc2hvdWxkCj4gYmUgcXVp dGUgc2FmZSBmcm9tIHRoYXQgfjVLSHogdmFsdWUuIFN0aWxsLCB0byBtYWtlIGl0IG9idmlvdXMs IEkgZG9uJ3QgdGhpbmsKPiBzb21ldGhpbmcgbGlrZSB0aGlzIHdvdWxkIGh1cnQ6Cj4gCj4gLS0t Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xvY2tzb3VyY2UvYXJtX2FyY2hfdGltZXIuYyBiL2Ry aXZlcnMvY2xvY2tzb3VyY2UvYXJtX2FyY2hfdGltZXIuYwo+IGluZGV4IDlhNTQ2NGM2MjViNDUu LmE3MjgzMjA5MzU3NWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1fYXJj aF90aW1lci5jCj4gKysrIGIvZHJpdmVycy9jbG9ja3NvdXJjZS9hcm1fYXJjaF90aW1lci5jCj4g QEAgLTg4NSw2ICs4ODUsMTcgQEAgc3RhdGljIGludCBhcmNoX3RpbWVyX3N0YXJ0aW5nX2NwdSh1 bnNpZ25lZCBpbnQgY3B1KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgdmFs aWRhdGVfdGltZXJfcmF0ZSh2b2lkKQo+ICt7Cj4gKwlpZiAoIWFyY2hfdGltZXJfcmF0ZSkKPiAr CQlyZXR1cm4gMTsKPiArCj4gKwkvKiBBcmNoIHRpbWVyIGZyZXF1ZW5jeSA8IDFNSHogaXMgc2hh ZHkgKi8KPiArCVdBUk5fT04oYXJjaF90aW1lcl9yYXRlIDwgMTAwMDAwMCk7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gIC8qCj4gICAqIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHdoZW4g cHJvYmluZyB3aXRoIERUIHdlIHVzZSB3aGljaGV2ZXIgKG5vbi16ZXJvKQo+ICAgKiByYXRlIHdh cyBwcm9iZWQgZmlyc3QsIGFuZCBkb24ndCB2ZXJpZnkgdGhhdCBvdGhlcnMgbWF0Y2guIElmIHRo ZSBmaXJzdCBub2RlCj4gQEAgLTkwMCw3ICs5MTEsNyBAQCBzdGF0aWMgdm9pZCBhcmNoX3RpbWVy X29mX2NvbmZpZ3VyZV9yYXRlKHUzMiByYXRlLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+ICAJ CWFyY2hfdGltZXJfcmF0ZSA9IHJhdGU7Cj4gIAo+ICAJLyogQ2hlY2sgdGhlIHRpbWVyIGZyZXF1 ZW5jeS4gKi8KPiAtCWlmIChhcmNoX3RpbWVyX3JhdGUgPT0gMCkKPiArCWlmICh2YWxpZGF0ZV90 aW1lcl9yYXRlKCkpCj4gIAkJcHJfd2FybigiZnJlcXVlbmN5IG5vdCBhdmFpbGFibGVcbiIpOwo+ ICB9Cj4gIAo+IEBAIC0xNTk0LDcgKzE2MDUsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhcmNoX3Rp bWVyX2FjcGlfaW5pdChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQo+ICAJICogQ05U RlJRIHZhbHVlLiBUaGlzICptdXN0KiBiZSBjb3JyZWN0Lgo+ICAJICovCj4gIAlhcmNoX3RpbWVy X3JhdGUgPSBhcmNoX3RpbWVyX2dldF9jbnRmcnEoKTsKPiAtCWlmICghYXJjaF90aW1lcl9yYXRl KSB7Cj4gKwlpZiAodmFsaWRhdGVfdGltZXJfcmF0ZSgpKSB7Cj4gIAkJcHJfZXJyKEZXX0JVRyAi ZnJlcXVlbmN5IG5vdCBhdmFpbGFibGUuXG4iKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0K PiAtLS0KPiAKCk9rYXksIEknbGwgYWRkIHRoaXMgYXMgYSBzZXBhcmF0ZSBwYXRjaCB0byB0aGUg c2VyaWVzIGFuZCBwdXQgeW91IGFzCmF1dGhvci4gVGhhdCBpcyBpZiB5b3Ugd2FudCBtZSB0byB0 aWUgdGhpcyBjaGVjayB0byB0aGlzIHVzZWNhc2UgdGhhdApwcm92ZXMgaXRzIHVzZWZ1bG5lc3Mu IE90aGVyd2lzZSBpdCBjYW4gc3RhbmQgb24gaXRzIG93biBhcyB3ZWxsIGlmCnlvdSB3YW50IHRv IHN1Ym1pdCBpdCBzZXBhcmF0ZWx5LgoKSW4gcmVnYXJkcyB0byB0aGUgcmF0aW8gY29tcHV0YXRp b24gZm9yIGZyZXF1ZW5jeSBpbnZhcmlhbmNlIHdoZXJlIHRoaXMKcGxheXMgYSByb2xlLCBJJ2xs IGRvIGEgY2hlY2sgYW5kIGJhaWwgb3V0IGlmIHRoZSByYXRpbyBpcyAwLCB3aGljaCBJJ20KYXNo YW1lZCB0byBub3QgaGF2ZSBhZGRlZCBiZWZvcmUgOikuCgpUaGFua3MsCklvbmVsYS4KCgo+ID4g TG9uZyBzdG9yeSBzaG9ydCwgd2UncmUgcHJvYmFibHkgZmluZSwgYnV0IGl0IHdvdWxkIG5pY2Ug dG8gc2hvdmUgc29tZSBvZgo+ID4gdGhlIGFib3ZlIGludG8gY29tbWVudHMgKGVzcGVjaWFsbHkg dGhlIFNDSEVEX0NBUEFDSVRZX1NDQUxFwrIgdHJpY2spCj4gPiAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK