[PATCH v2 5/6] coresight: Add format attribute for setting the timestamp interval
Leo Yan
leo.yan at arm.com
Wed Oct 1 06:28:15 PDT 2025
On Wed, Oct 01, 2025 at 01:40:37PM +0100, James Clark wrote:
[...]
> > > @@ -103,6 +111,9 @@ static struct attribute *etm_config_formats_attr[] = {
> > > &format_attr_configid.attr,
> > > &format_attr_branch_broadcast.attr,
> > > &format_attr_cc_threshold.attr,
> > > +#if IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X)
> > > + &format_attr_ts_level.attr,
> > > +#endif
> >
> > By using .visible() callback for attrs, we can improve a bit code
> > without spreading "#ifdef IS_ENABLED()" in this file. E.g.,
> >
> > static umode_t format_attr_is_visible(struct kobject *kobj,
> > struct attribute *attr, int n)
> > {
> > struct device *dev = kobj_to_dev(kobj);
> >
> > if (attr == &format_attr_ts_level.attr &&
> > !IS_ENABLED(CONFIG_CORESIGHT_SOURCE_ETM4X))
> > return 0;
> >
> > return attr->mode;
> > }
> >
> > Otherwise, LGTM:
> >
> > Reviewed-by: Leo Yan <leo.yan at arm.com>
> >
>
> Unfortunately that won't work because you'd have to always include
> coresight-etm4x.h. This file is compiled for both arm32 and arm64 so it
> would break the arm32 build.
>
> I could define the TTR_CFG_FLD_ts_level_* stuff somewhere else but then it
> becomes messier than just doing the #ifdefs here.
ATTR_CFG_FLD_ts_level_* is only used in coresight-etm4x-core.c, it is not
used in coresight-etm-perf.c. Thus, we don't need to include
coresight-etm4x.h in coresight-etm-perf.c. Do I miss anything?
A similiar case is the attr 'cc_threshold' is only used by ETMv4, it is
exported always. It is not bad for me to always expose these attrs but
in the are ignored in the ETMv3 driver - so we even don't need to
bother adding .visible() callback.
Thanks,
Leo
More information about the linux-arm-kernel
mailing list