[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251219104241.GB9788@e132581.arm.com>
Date: Fri, 19 Dec 2025 10:42:41 +0000
From: Leo Yan <leo.yan@....com>
To: yuanfang zhang <yuanfang.zhang@....qualcomm.com>
Cc: Suzuki K Poulose <suzuki.poulose@....com>,
Mike Leach <mike.leach@...aro.org>,
James Clark <james.clark@...aro.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Mathieu Poirier <mathieu.poirier@...aro.org>,
Leo Yan <leo.yan@...ux.dev>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, kernel@....qualcomm.com,
coresight@...ts.linaro.org, linux-arm-kernel@...ts.infradead.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org, maulik.shah@....qualcomm.com,
Jie Gan <jie.gan@....qualcomm.com>
Subject: Re: [PATCH v2 00/12] coresight: Add CPU cluster
funnel/replicator/tmc support
On Fri, Dec 19, 2025 at 09:50:18AM +0800, yuanfang zhang wrote:
[...]
> It is due to the particular characteristics of the CPU cluster power domain.
> Runtime PM for CPU devices works little different, it is mostly used to manage hierarchical
> CPU topology (PSCI OSI mode) to talk with genpd framework to manage the last CPU handling in
> cluster.
> It doesn’t really send IPI to wakeup CPU device (It don’t have .power_on/.power_off) callback
> implemented which gets invoked from .runtime_resume callback. This behavior is aligned with
> the upstream Kernel.
Just for easier understanding, let me give an example:
funnel0: funnel@...00000 {
compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
reg = <0x10000000 0x1000>;
clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
clock-names = "apb_pclk", "atclk";
power-domains = <&cluster0_pd>;
}
If funnel0 is bound to cluster's power domain, kernel's genPD will
automatically enable cluster power domain before access registers.
My understanding is your driver or firmware fails to turn on a cluster
power domain without waking up a CPU (and without sending IPI). It is
not a kernel issue or limitation, and no any incorrect in PSCI OSI.
As Suzuki said, you might directly reply Sudeep's questions. We would
confirm if any flaw in common code.
> > P.s., currently you can use "taskset" as a temporary solution without
> > any code change, something like:
> >
> > taskset -c 0 echo 1 > /sys/bus/coresight/devices/etm0/enable_source
>
> This can address the runtime issue, but it does not resolve the problem during the probe phase.
Indeed. If you insmod mode, you might can temporarily disable idle
states?
exec 3<> /dev/cpu_dma_latency; echo 0 >&3
insmod
exec 3<>-
Thanks,
Leo
Powered by blists - more mailing lists