Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp3402865ybn; Fri, 27 Sep 2019 05:59:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqzQnckVFnFRiaqxbwNZn+wmrfMpXzY5BeRW0x9D+poflqtEZrD/XyCpAlMuIkCpK9aUA+MC X-Received: by 2002:a50:d98a:: with SMTP id w10mr4363434edj.276.1569589192863; Fri, 27 Sep 2019 05:59:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569589192; cv=none; d=google.com; s=arc-20160816; b=gVKS0JMrn4sozC4yB2kqj0P3Qb8Ty9XTj+2ElapJZsQhrJfzNCTg0daK4Ge2c7+cjT lZSb8T34nyaXLw1GMwwnygAIsXoAAdoJOZze4+Sc6Cb7xoI+FWpVMZHPc5bSldq3r2i/ aLMoAnLXr0PcAAlfJsvoxo0wFkw7WVHChGKxBgqp9MgbSzjuYOi0rBvnRrHW6gOk0+g5 H4G/ANJ3PsNEY8bh+Wc/pEIgsN3fRC9BQiZwBL50U1738+/ONKUo467UVvfM+q3UWfd4 yD69lv1mazi/VgSAFCGX4D975z23r+6cl1bhos0itycNUIfuqdI+g9zhTZ6AgZR5QoGL X/+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:cc:from:date:content-transfer-encoding:mime-version :subject:to; bh=wX6A5C3mEbsnFHKerPwVg1JWOLV4MNYLtkWZEVGYMT8=; b=CypKyOC8HqIpeiis/iE6gAFyBa+wQjyTe6TZHAMdYMkCrNJRMqrnGg4o4eK++JGbg6 h4JkC22t/mCG6mbKQEWqIiAZCsf47Ip7omCcQx9cftuVGksKZOKUxjLKHSLzaqE7QvGR OADTvCJyCEubYv3hlJgT43d9q9IFJmmFmwbAAmh2FPkeMbM79UyDgJ8OY9Pl6OM/7Vo7 vofLadG4AMbDVYBWNGs7cJ2Q0+z9DBPpKWM2Pw4Oi7F9FQTc8Y+YuJYac1OetrrbdJQo GBwjlCTB8odf9zALRsuSY6GNWtUeeyT4j6pHUyNRda0UJvz6uD1cPGwVfQRsIf38mh8u YRmg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r8si2579362ejr.33.2019.09.27.05.59.28; Fri, 27 Sep 2019 05:59:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727262AbfI0M7N (ORCPT + 99 others); Fri, 27 Sep 2019 08:59:13 -0400 Received: from inca-roads.misterjones.org ([213.251.177.50]:50716 "EHLO inca-roads.misterjones.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726295AbfI0M7M (ORCPT ); Fri, 27 Sep 2019 08:59:12 -0400 Received: from www-data by cheepnis.misterjones.org with local (Exim 4.80) (envelope-from ) id 1iDppz-0008Q0-8M; Fri, 27 Sep 2019 14:59:07 +0200 To: Benjamin GAIGNARD Subject: Re: [PATCH] ARM: dts: stm32: Enable high resolution timer X-PHP-Originating-Script: 0:main.inc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Date: Fri, 27 Sep 2019 13:59:06 +0100 From: Marc Zyngier Cc: Alexandre TORGUE , , , , , , In-Reply-To: <69af57d1-13a9-9e35-78f2-4a0d17bdaf6d@st.com> References: <20190927084819.645-1-benjamin.gaignard@st.com> <341949c8-7864-5d65-2797-988022724a4c@st.com> <69af57d1-13a9-9e35-78f2-4a0d17bdaf6d@st.com> Message-ID: X-Sender: maz@kernel.org User-Agent: Roundcube Webmail/0.7.2 X-SA-Exim-Connect-IP: X-SA-Exim-Rcpt-To: benjamin.gaignard@st.com, alexandre.torgue@st.com, robh+dt@kernel.org, mark.rutland@arm.com, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on cheepnis.misterjones.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2019-09-27 13:44, Benjamin GAIGNARD wrote: > On 9/27/19 2:41 PM, Marc Zyngier wrote: >> On 2019-09-27 13:36, Benjamin GAIGNARD wrote: >>> On 9/27/19 1:22 PM, Marc Zyngier wrote: >>>> On 2019-09-27 09:48, Benjamin Gaignard wrote: >>>>> Adding always-on makes arm arch_timer claim to be an high >>>>> resolution >>>>> timer. >>>>> That is possible because power mode won't stop clocking the >>>>> timer. >>>> >>>> The "always-on" is not about the clock. It is about the >>>> comparator. >>>> The clock itself is *guaranteed* to always tick. If it didn't, >>>> that'd be >>>> an integration bug, and a pretty bad one. >>>> >>>> What you're claiming here is that your CPU never enters a >>>> low-power >>>> mode? >>>> Ever? I find this very hard to believe. >>>> >>>> Furthermore, claiming that always-on is the way to force the >>>> arch-timer >>>> to be an hrtimer is factually wrong. This is what happens *if* >>>> this is >>>> the only timer in the system. The only case this is true is for >>>> virtual >>>> machines. Anything else has a global timer somewhere that will >>>> allow >>>> the arch timers to be used as an hrtimer. >>>> >>>> I'm pretty sure you too have a global timer somewhere in your >>>> system. >>>> Enable it, and enjoy hrtimers without having to lie about the >>>> properties >>>> of your system! ;-) >>> >>> Hi Marc, >>> >>> This SoC doesn't have any other global timer. Use arch_time is the >>> only >>> we have to provide hrtimer on this system. >> >> And you don't have any form of power management either? What happens >> when >> your CPU goes into idle? If your system does any form of power >> management >> *and* doesn't have a separate timer, it is remarkably broken. > > Even in low-power modes this timer is always powered and clocked so > it > is working fine. You're missing the point again. It is not about the clock, but the comparator that is internal to the CPU, and not functional when the CPU is in its lowest power mode. See also the verbiage in [1] (44.3 STGEN functional description), which indicates that the clock source actually dies in low-power mode (going against the architecture which mandates it to be always-on). Also, coming back to your earlier assertion ("This SoC doesn't have any other global timer"): The documentation at [1] shows at least 17 timers that could be used and avoid this dirty hack. So for what it is worth, NAK to this patch. M. [1] https://www.st.com/resource/en/reference_manual/dm00366355.pdf -- Jazz is not dead. It just smells funny...