[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPDyKFoz4P6cZWNA-omNtF3XqKKciC07aVXBTVQp8ueyyYxmxA@mail.gmail.com>
Date: Mon, 6 Oct 2025 14:22:49 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: Sudeep Holla <sudeep.holla@....com>
Cc: "Rafael J . Wysocki" <rafael@...nel.org>, Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>, Mark Rutland <mark.rutland@....com>,
Thomas Gleixner <tglx@...utronix.de>, Maulik Shah <quic_mkshah@...cinc.com>,
Daniel Lezcano <daniel.lezcano@...aro.org>, Vincent Guittot <vincent.guittot@...aro.org>,
linux-pm@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] arm64: smp: Implement cpus_has_pending_ipi()
On Mon, 6 Oct 2025 at 12:54, Sudeep Holla <sudeep.holla@....com> wrote:
>
> On Fri, Oct 03, 2025 at 05:02:44PM +0200, Ulf Hansson wrote:
> > To add support for keeping track of whether there may be a pending IPI
> > scheduled for a CPU or a group of CPUs, let's implement
> > cpus_has_pending_ipi() for arm64.
> >
> > Note, the implementation is intentionally lightweight and doesn't use any
> > additional lock. This is good enough for cpuidle based decisions.
> >
>
> I’m not completely against this change, but I’d like to discuss a few points
> based on my understanding (which might also be incorrect):
>
> 1. For systems that don’t use PM domains for idle, wouldn’t this be
> unnecessary? It might be worth making this conditional if we decide to
> proceed.
For the non PM domain case, cpuidle_idle_call() calls need_resched()
and bails out if it returns true. I think that does the job, for other
more common cases.
Making this conditional could make sense. Not sure how costly it is to
update the per CPU variables.
>
> 2. I understand this is intended for the DragonBoard 410c, where the firmware
> can’t be updated. However, ideally, the PSCI firmware should handle checking
> for pending IPIs if that’s important for the platform. The firmware could
> perform this check at the CPU PPU/HW level and prevent entering the
> state if needed.
I think this is exactly what is happening on Dragonboard 410c (see the
stats I shared in the commit message in patch3).
The PSCI FW refuses to enter the suggested idlestate and the call fails.
>
> 3. I’m not an expert, but on systems with a large number of CPUs, tracking
> this for idle (which may or may not be enabled) seems a bit excessive,
> especially under heavy load when the system isn’t really idling.
Right, making the tracking mechanism conditional sounds like worth
exploring. I guess the trick is to find a good way to dynamically
enable it.
Kind regards
Uffe
Powered by blists - more mailing lists