Messages in this thread | | | Date | Tue, 19 Jan 2021 10:32:07 +0800 | From | Leo Yan <> | Subject | Re: [PATCH v1 2/7] perf cs_etm: Use pid tracing explicitly instead of contextid |
| |
Hi Mathieu,
On Fri, Jan 15, 2021 at 03:44:16PM -0700, Mathieu Poirier wrote: > On Sat, Jan 09, 2021 at 03:44:30PM +0800, Leo Yan wrote: > > From: Suzuki K Poulose <suzuki.poulose@arm.com> > > > > If the kernel is running at EL2, the pid of the task is exposed > > via VMID instead of the CONTEXTID. Add support for this in the > > perf tool. > > > > By default the perf tool requests contextid and timestamp for > > task bound events. Instead of hard coding contextid, switch > > to "pid" config exposed by the kernel. While at it, define new > > independent macros (rather than using the "config" bits) for > > requesting the "pid" and "timestamp" for cs_etm_set_option(), > > since the PID config is now dynamic depending on the kernel > > exception level. > > > > Cc: Mike Leach <mike.leach@linaro.org> > > Cc: Mathieu Poirier <mathieu.poirier@linaro.org> > > Cc: Al Grant <al.grant@arm.com> > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> > > Signed-off-by: Leo Yan <leo.yan@linaro.org> > > --- > > tools/include/linux/coresight-pmu.h | 11 +++-- > > tools/perf/arch/arm/util/cs-etm.c | 68 ++++++++++++++++++++++------- > > 2 files changed, 59 insertions(+), 20 deletions(-) > > > > diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h > > index b0e35eec6499..927c6285ce5d 100644 > > --- a/tools/include/linux/coresight-pmu.h > > +++ b/tools/include/linux/coresight-pmu.h > > @@ -11,16 +11,19 @@ > > #define CORESIGHT_ETM_PMU_SEED 0x10 > > > > /* ETMv3.5/PTM's ETMCR config bit */ > > -#define ETM_OPT_CYCACC 12 > > -#define ETM_OPT_CTXTID 14 > > -#define ETM_OPT_TS 28 > > -#define ETM_OPT_RETSTK 29 > > +#define ETM_OPT_CYCACC 12 > > +#define ETM_OPT_CTXTID 14 > > +#define ETM_OPT_CTXTID_IN_VMID 15 > > +#define ETM_OPT_TS 28 > > +#define ETM_OPT_RETSTK 29 > > > > /* ETMv4 CONFIGR programming bits for the ETM OPTs */ > > #define ETM4_CFG_BIT_CYCACC 4 > > #define ETM4_CFG_BIT_CTXTID 6 > > +#define ETM4_CFG_BIT_VMID 7 > > #define ETM4_CFG_BIT_TS 11 > > #define ETM4_CFG_BIT_RETSTK 12 > > +#define ETM4_CFG_BIT_VMID_OPT 15 > > Wasn't this done in the previous patch?
In the previous patch, these bits are defined in the kernel's header include/linux/coresight-pmu.h; at here it defines the same bits in tool's header.
To be honest, I struggled to understand your suggestions, finally I think it's feasbile and we can simplify the implementation. I will try to refine the patch series for the review.
Appreciate for good suggestions!
Leo
| |