perf cs-etm: Update deduction of TRCCONFIGR register for branch broadcast

Now that a config flag for branch broadcast has been added, take it into
account when trying to deduce what the driver would have programmed the
TRCCONFIGR register to.

Reviewed-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Reviewed-by: Suzuki Poulouse <suzuki.poulose@arm.com>
Signed-off-by: James Clark <james.clark@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Garry <john.garry@huawei.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Will Deacon <will@kernel.org>
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-doc@vger.kernel.org
Link: https://lore.kernel.org/r/20220113091056.1297982-4-james.clark@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
James Clark 2022-01-13 09:10:52 +00:00 committed by Arnaldo Carvalho de Melo
parent 1006c5c169
commit aca8af3c2e
2 changed files with 5 additions and 0 deletions

View File

@ -18,6 +18,7 @@
* ETMv3.5/PTM doesn't define ETMCR config bits with prefix "ETM3_" and * ETMv3.5/PTM doesn't define ETMCR config bits with prefix "ETM3_" and
* directly use below macros as config bits. * directly use below macros as config bits.
*/ */
#define ETM_OPT_BRANCH_BROADCAST 8
#define ETM_OPT_CYCACC 12 #define ETM_OPT_CYCACC 12
#define ETM_OPT_CTXTID 14 #define ETM_OPT_CTXTID 14
#define ETM_OPT_CTXTID2 15 #define ETM_OPT_CTXTID2 15
@ -25,6 +26,7 @@
#define ETM_OPT_RETSTK 29 #define ETM_OPT_RETSTK 29
/* ETMv4 CONFIGR programming bits for the ETM OPTs */ /* ETMv4 CONFIGR programming bits for the ETM OPTs */
#define ETM4_CFG_BIT_BB 3
#define ETM4_CFG_BIT_CYCACC 4 #define ETM4_CFG_BIT_CYCACC 4
#define ETM4_CFG_BIT_CTXTID 6 #define ETM4_CFG_BIT_CTXTID 6
#define ETM4_CFG_BIT_VMID 7 #define ETM4_CFG_BIT_VMID 7

View File

@ -510,6 +510,9 @@ static u64 cs_etmv4_get_config(struct auxtrace_record *itr)
if (config_opts & BIT(ETM_OPT_CTXTID2)) if (config_opts & BIT(ETM_OPT_CTXTID2))
config |= BIT(ETM4_CFG_BIT_VMID) | config |= BIT(ETM4_CFG_BIT_VMID) |
BIT(ETM4_CFG_BIT_VMID_OPT); BIT(ETM4_CFG_BIT_VMID_OPT);
if (config_opts & BIT(ETM_OPT_BRANCH_BROADCAST))
config |= BIT(ETM4_CFG_BIT_BB);
return config; return config;
} }