[PATCH v6 01/19] coresight: sysfs: Validate CPU online status for per-CPU sources
Leo Yan
leo.yan at arm.com
Mon Mar 16 07:02:42 PDT 2026
On Fri, Mar 13, 2026 at 11:03:02AM +0000, Suzuki K Poulose wrote:
> On 05/03/2026 10:17, Leo Yan wrote:
> > The current SysFS flow first enables the links and sink, then rolls back
> > to disable them if the source fails to enable. This failure can occur if
> > the associated CPU is offline, which causes the SMP call to fail.
> >
> > Populate CPU ID into the coresight_device structure, for components that
> > are not CPU bound, set this field to -1.
> >
> > Validate whether the associated CPU is online for a per-CPU tracer. If
> > the CPU is offline, return -ENODEV and bail out.
> >
> > Reviewed-by: Yeoreum Yun <yeoreum.yun at arm.com>
> > Reviewed-by: Mike Leach <mike.leach at linaro.org>
> > Tested-by: James Clark <james.clark at linaro.org>
> > Signed-off-by: Leo Yan <leo.yan at arm.com>
>
> While this works, how about we make it an explicit buy in from the driver
> for CPU bound ?
>
> e.g., add a flag in the coresight_desc.flags = CORESIGHT_DESC_CPU_BOUND
>
> and then desc.cpu describes the associated CPU. Otherwise, defaults to -1.
> That way you could restrict the changes to only those that need the
> CPU (ETMx and CTIs ?) Also makes any new driver safe.
Instead of adding a flag, I'd use a helper to check existed flags:
static inline bool coresight_is_cpu_bound(struct coresight_device *csdev)
{
if (!csdev)
return false;
if (coresight_is_percpu_source(csdev))
return true;
if (csdev->type == CORESIGHT_DEV_TYPE_HELPER &&
csdev->subtype.helper_subtype == CORESIGHT_DEV_SUBTYPE_HELPER_ECT_CTI)
return true;
return false;
}
Only CPU bound device will assign CPU ID, otherwise will set -1.
Thanks,
Leo
More information about the linux-arm-kernel
mailing list