From: William McVicker <willmcvicker@google.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
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>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Saravana Kannan" <saravanak@google.com>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Donghoon Yu" <hoony.yu@samsung.com>,
"Hosung Kim" <hosung0.kim@samsung.com>,
kernel-team@android.com, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
"Youngmin Nam" <youngmin.nam@samsung.com>,
linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 6/7] clocksource/drivers/exynos_mct: Add module support
Date: Tue, 15 Apr 2025 14:25:43 -0700 [thread overview]
Message-ID: <Z_7O1xi2-ZGhJ1r_@google.com> (raw)
In-Reply-To: <Z_6OZHYfC0bC5289@mai.linaro.org>
On 04/15/2025, Daniel Lezcano wrote:
> Hi Will,
Hi Daniel,
>
> On Wed, Apr 02, 2025 at 04:33:57PM -0700, Will McVicker wrote:
> > From: Donghoon Yu <hoony.yu@samsung.com>
> >
> > On Arm64 platforms the Exynos MCT driver can be built as a module. On
> > boot (and even after boot) the arch_timer is used as the clocksource and
> > tick timer. Once the MCT driver is loaded, it can be used as the wakeup
> > source for the arch_timer.
>
> From a previous thread where there is no answer:
>
> https://lore.kernel.org/all/c1e8abec-680c-451d-b5df-f687291aa413@linaro.org/
>
> I don't feel comfortable with changing the clocksource / clockevent drivers to
> a module for the reasons explained in the aforementionned thread.
>
> Before this could be accepted, I really need a strong acked-by from Thomas
Thanks for the response! I'll copy-and-paste your replies from that previous
thread and try to address your concerns.
> * the GKI approach is to have an update for the 'mainline' kernel and
> let the different SoC vendors deal with their drivers. I'm afraid this
> will prevent driver fixes to be carry on upstream because they will stay
> in the OoT kernels
I can't speak for that specific thread or their intent, but I can speak to this
thread and our intent.
This whole patch series is about upstreaming the downstream changes. So saying
this will prevent others from upstreaming changes is punishing the folks who
are actually trying to upstream changes. I don't think that's a fair way to
handle this.
Also, rejecting this series will not prevent people from upstreaming their
changes, it'll just make it more unlikely because they now have to deal with
upstreaming more changes that were rejected in the past. That's daunting for
someone who doesn't do upstreaming often. I'm telling this from experience
dealing with SoC vendors and asking them to upstream stuff.
With that said, let me try to address some of your technical concerns.
> * the core code may not be prepared for that, so loading / unloading
> the modules with active timers may result into some issues
We had the same concern for irqchip drivers. We can easily disable unloading
for these clocksource modules just like we did for irqchip by making them
permanent modules.
> * it may end up with some interactions with cpuidle at boot time and
> the broadcast timer
If I'm understanding this correctly, no driver is guaranteed to probe at
initialization time regardless of whether it is built-in or a module. Taking
a look at the other clocksource drivers, I found that the following drivers are
all calling `clocksource_register_hz()` and `clockevents_config_and_register()`
at probe time.
timer-sun5i.c
sh_tmu.c
sh_cmt.c
timer-tegra186.c
timer-stm32-lp.c (only calls clockevents_config_and_register())
So this concern is unrelated to building these drivers are modules. Please let
me know if I'm missing something here.
> * the timekeeping may do jump in the past [if and] when switching the
> clocksource
Can you clarify how this relates to modules? IIUC, the clocksource can be
changed anytime by writing to:
/sys/devices/system/clocksource/clocksource0/current_clocksource
If there's a bug related to timekeeping and changing the clocksource, then that
should be handled separately from the modularization code.
For ARM64 in general, the recommendation is to use the ARM architected timer
which is not a module and is used for scheduling and timekeeping. While the
Exynos MCT driver can functionally be used as the primary clocksource, it's not
recommended due to performance issues. So building the MCT driver as a kernel
module really shouldn't be an issue and has been thoroughly testing on several
generations of Pixel devices which is why we are trying to upstream our
downstream technical debt (so we can directly using the upstream version of the
Exynos MCT driver).
Thanks,
Will
[...]
next prev parent reply other threads:[~2025-04-15 21:25 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20250402233425epcas2p479285add99d27dc18aabd2295bfcbdc8@epcas2p4.samsung.com>
2025-04-02 23:33 ` [PATCH v2 0/7] Add module support for Arm64 Exynos MCT driver Will McVicker
2025-04-02 23:33 ` [PATCH v2 1/7] of/irq: Export of_irq_count for modules Will McVicker
2025-04-02 23:33 ` [PATCH v2 2/7] clocksource/drivers/exynos_mct: Don't register as a sched_clock on arm64 Will McVicker
2025-04-02 23:51 ` John Stultz
2025-04-08 19:57 ` William McVicker
2025-04-02 23:33 ` [PATCH v2 3/7] clocksource/drivers/exynos_mct: Set local timer interrupts as percpu Will McVicker
2025-05-08 10:12 ` Peter Griffin
2025-04-02 23:33 ` [PATCH v2 4/7] arm64: dts: exynos: gs101: Add 'local-timer-stop' to cpuidle nodes Will McVicker
2025-05-08 10:11 ` Peter Griffin
2025-04-02 23:33 ` [PATCH v2 5/7] clocksource/drivers/exynos_mct: Fix uninitialized irq name warning Will McVicker
2025-05-08 10:19 ` Peter Griffin
2025-04-02 23:33 ` [PATCH v2 6/7] clocksource/drivers/exynos_mct: Add module support Will McVicker
2025-04-15 16:50 ` Daniel Lezcano
2025-04-15 21:25 ` William McVicker [this message]
2025-04-16 11:15 ` Daniel Lezcano
2025-05-08 11:44 ` Peter Griffin
2025-04-16 0:48 ` John Stultz
2025-04-16 13:46 ` Daniel Lezcano
2025-04-16 19:48 ` John Stultz
2025-04-16 21:00 ` John Stultz
2025-05-13 14:52 ` Daniel Lezcano
2025-05-14 23:16 ` William McVicker
2025-05-23 15:03 ` Daniel Lezcano
2025-05-23 17:06 ` William McVicker
2025-05-23 18:06 ` Saravana Kannan
2025-05-23 20:39 ` Daniel Lezcano
2025-04-02 23:33 ` [PATCH v2 7/7] arm64: exynos: Drop select CLKSRC_EXYNOS_MCT Will McVicker
2025-04-04 1:11 ` [PATCH v2 0/7] Add module support for Arm64 Exynos MCT driver Youngmin Nam
2025-04-04 6:02 ` Krzysztof Kozlowski
2025-04-04 6:17 ` Youngmin Nam
2025-04-08 19:57 ` William 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_7O1xi2-ZGhJ1r_@google.com \
--to=willmcvicker@google.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=hoony.yu@samsung.com \
--cc=hosung0.kim@samsung.com \
--cc=kernel-team@android.com \
--cc=krzk+dt@kernel.org \
--cc=krzk@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=youngmin.nam@samsung.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).