From: Youngmin Nam <youngmin.nam@samsung.com>
To: William McVicker <willmcvicker@google.com>
Cc: "Catalin Marinas" <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>,
"Peter Griffin" <peter.griffin@linaro.org>,
"André Draszik" <andre.draszik@linaro.org>,
"Tudor Ambarus" <tudor.ambarus@linaro.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Alim Akhtar" <alim.akhtar@samsung.com>,
"Daniel Lezcano" <daniel.lezcano@linaro.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Saravana Kannan" <saravanak@google.com>,
kernel-team@android.com, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
devicetree@vger.kernel.org, "Will Deacon" <willdeacon@google.com>,
"Youngmin Nam" <youngmin.nam@samsung.com>
Subject: Re: [PATCH v1 4/6] arm64: dts: exynos: gs101: Add 'local-timer-stop' to cpuidle nodes
Date: Fri, 4 Apr 2025 09:02:08 +0900 [thread overview]
Message-ID: <Z+8hgK5YJ1ZhAl0C@perf> (raw)
In-Reply-To: <Z-7V27GKU85vba0B@google.com>
[-- Attachment #1: Type: text/plain, Size: 4461 bytes --]
On Thu, Apr 03, 2025 at 11:39:23AM -0700, William McVicker wrote:
> On 04/03/2025, Youngmin Nam wrote:
> > On Wed, Apr 02, 2025 at 02:59:31PM -0700, William McVicker wrote:
> > > Hi Youngmin,
> > >
> > > On 04/02/2025, Youngmin Nam wrote:
> > > > On Mon, Mar 31, 2025 at 04:00:26PM -0700, Will McVicker wrote:
> > > > > From: Will Deacon <willdeacon@google.com>
> > > > >
> > > > > In preparation for switching to the architected timer as the primary
> > > > > clockevents device, mark the cpuidle nodes with the 'local-timer-stop'
> > > > > property to indicate that an alternative clockevents device must be
> > > > > used for waking up from the "c2" idle state.
> > > > >
> > > > > Signed-off-by: Will Deacon <willdeacon@google.com>
> > > > > [Original commit from https://android.googlesource.com/kernel/gs/+/a896fd98638047989513d05556faebd28a62b27c]
> > > > > Signed-off-by: Will McVicker <willmcvicker@google.com>
> > > > > ---
> > > > > arch/arm64/boot/dts/exynos/google/gs101.dtsi | 3 +++
> > > > > 1 file changed, 3 insertions(+)
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
> > > > > index 3de3a758f113..fd0badf24e6f 100644
> > > > > --- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
> > > > > +++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
> > > > > @@ -155,6 +155,7 @@ ananke_cpu_sleep: cpu-ananke-sleep {
> > > > > idle-state-name = "c2";
> > > > > compatible = "arm,idle-state";
> > > > > arm,psci-suspend-param = <0x0010000>;
> > > > > + local-timer-stop;
> > > > > entry-latency-us = <70>;
> > > > > exit-latency-us = <160>;
> > > > > min-residency-us = <2000>;
> > > > > @@ -164,6 +165,7 @@ enyo_cpu_sleep: cpu-enyo-sleep {
> > > > > idle-state-name = "c2";
> > > > > compatible = "arm,idle-state";
> > > > > arm,psci-suspend-param = <0x0010000>;
> > > > > + local-timer-stop;
> > > > > entry-latency-us = <150>;
> > > > > exit-latency-us = <190>;
> > > > > min-residency-us = <2500>;
> > > > > @@ -173,6 +175,7 @@ hera_cpu_sleep: cpu-hera-sleep {
> > > > > idle-state-name = "c2";
> > > > > compatible = "arm,idle-state";
> > > > > arm,psci-suspend-param = <0x0010000>;
> > > > > + local-timer-stop;
> > > > > entry-latency-us = <235>;
> > > > > exit-latency-us = <220>;
> > > > > min-residency-us = <3500>;
> > > > > --
> > > > > 2.49.0.472.ge94155a9ec-goog
> > > > >
> > > > Hi Will.
> > > >
> > > > Are you using this property in production?
> > > > If so, have you noticed any performance improvements?
> > >
> > > On Pixel 6, I have only recently switched to using the arch_timer as the
> > > default clocksource. I haven't noticed any major perf improvements to the main
> > > benchmarks, but also haven't seen any regressions. Based on the ChromeOS perf
> > > analysis in [1,2], there was a significant perf difference found.
> > >
> > > [1] https://lore.kernel.org/linux-samsung-soc/CAJFHJrrgWGc4XGQB0ysLufAg3Wouz-aYXu97Sy2Kp=HzK+akVQ@mail.gmail.com/
> > > [2] https://lore.kernel.org/linux-samsung-soc/CAASgrz2Nr69tpfC8ka9gbs2OvjLEGsvgAj4vBCFxhsamuFum7w@mail.gmail.com/
> > >
> > > If it helps, I found that Pixel 8 and 9 devices (didn't check Pixel 7)
> > > are already using the arch_timer with this 'local-timer-stop' as the default
> > > clocksource in the production kernel.
> > >
> > > Thanks,
> > > Will
> > >
> > > [...]
> > >
> >
> > Hi Will,
> >
> > Thanks for sharing the status of Pixel devices.
> >
> > I agree that using the arch_timer as a clock source device brings significant benefits.
> > The links you shared are definitely related to that.
> >
> > However, I would also like to know whether arch_timer is used as a clock event device in Pixel production.
>
> For Pixel 8 and 9, the arch_timer is used as both the clocksource and
> clockevent device which is what my series is proposing for Pixel 6 upstream.
> The MCT device is solely being used as the alternative clockevents device for
> waking up from the "c2" state. The reason for using the arch_timer as the
> clockevents device is because we were seeing hrtimer stability issues where
> a 10ms interval timer would delay about 300ms-1s before starting the callback.
> This resulted in several media-related latency issues.
>
> Thanks,
> Will
>
> [...]
>
Thank you for sharing your valuable experience. That will be helpful to us.
Thanks,
Youngmin
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2025-04-04 0:00 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-31 23:00 [PATCH v1 0/6] Add module support for Arm64 Exynos MCT driver Will McVicker
2025-03-31 23:00 ` [PATCH v1 1/6] of/irq: Export of_irq_count for modules Will McVicker
2025-04-01 2:30 ` Rob Herring
2025-03-31 23:00 ` [PATCH v1 2/6] clocksource/drivers/exynos_mct: Don't register as a sched_clock on arm64 Will McVicker
2025-03-31 23:40 ` John Stultz
2025-04-01 16:50 ` William McVicker
2025-04-02 1:43 ` Youngmin Nam
2025-03-31 23:00 ` [PATCH v1 3/6] clocksource/drivers/exynos_mct: Set local timer interrupts as percpu Will McVicker
2025-03-31 23:45 ` John Stultz
2025-04-01 16:36 ` William McVicker
2025-04-02 2:32 ` Youngmin Nam
2025-04-02 22:39 ` William McVicker
2025-03-31 23:00 ` [PATCH v1 4/6] arm64: dts: exynos: gs101: Add 'local-timer-stop' to cpuidle nodes Will McVicker
2025-04-02 4:10 ` Youngmin Nam
2025-04-02 21:59 ` William McVicker
2025-04-03 3:59 ` Youngmin Nam
2025-04-03 18:39 ` William McVicker
2025-04-04 0:02 ` Youngmin Nam [this message]
2025-03-31 23:00 ` [PATCH v1 5/6] clocksource/drivers/exynos_mct: Add module support Will McVicker
2025-04-01 2:30 ` Rob Herring
2025-04-01 16:27 ` William McVicker
2025-04-01 6:36 ` Krzysztof Kozlowski
2025-04-01 16:27 ` William McVicker
2025-04-02 4:27 ` Youngmin Nam
2025-03-31 23:00 ` [PATCH v1 6/6] arm64: exynos: Drop select CLKSRC_EXYNOS_MCT Will McVicker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z+8hgK5YJ1ZhAl0C@perf \
--to=youngmin.nam@samsung.com \
--cc=alim.akhtar@samsung.com \
--cc=andre.draszik@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=kernel-team@android.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=peter.griffin@linaro.org \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=tglx@linutronix.de \
--cc=tudor.ambarus@linaro.org \
--cc=will@kernel.org \
--cc=willdeacon@google.com \
--cc=willmcvicker@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.