Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4AE0C433FE for ; Thu, 13 Jan 2022 09:09:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233749AbiAMJJm (ORCPT ); Thu, 13 Jan 2022 04:09:42 -0500 Received: from foss.arm.com ([217.140.110.172]:41304 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233722AbiAMJJk (ORCPT ); Thu, 13 Jan 2022 04:09:40 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 679C36D; Thu, 13 Jan 2022 01:09:40 -0800 (PST) Received: from [10.57.35.134] (unknown [10.57.35.134]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 79B2F3F766; Thu, 13 Jan 2022 01:09:38 -0800 (PST) Subject: Re: [PATCH 3/3] perf cs-etm: Update deduction of TRCCONFIGR register for branch broadcast To: Leo Yan Cc: mathieu.poirier@linaro.org, coresight@lists.linaro.org, suzuki.poulose@arm.com, Mike Leach , John Garry , Will Deacon , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org References: <20211208160907.749482-1-james.clark@arm.com> <20211208160907.749482-3-james.clark@arm.com> <20211210024137.GB622826@leoy-ThinkPad-X240s> From: James Clark Message-ID: Date: Thu, 13 Jan 2022 09:09:37 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <20211210024137.GB622826@leoy-ThinkPad-X240s> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/12/2021 02:41, Leo Yan wrote: > On Wed, Dec 08, 2021 at 04:09:07PM +0000, James Clark wrote: >> 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. >> >> Signed-off-by: James Clark >> --- >> tools/include/linux/coresight-pmu.h | 2 ++ >> tools/perf/arch/arm/util/cs-etm.c | 3 +++ >> 2 files changed, 5 insertions(+) >> >> diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h >> index 4ac5c081af93..6c2fd6cc5a98 100644 >> --- a/tools/include/linux/coresight-pmu.h >> +++ b/tools/include/linux/coresight-pmu.h >> @@ -18,6 +18,7 @@ >> * ETMv3.5/PTM doesn't define ETMCR config bits with prefix "ETM3_" and >> * directly use below macros as config bits. >> */ >> +#define ETM_OPT_BRANCH_BROADCAST 8 > > I checked ETMv3 architecture spec (ARM IHI 0014Q), its bit 8 is "branch > output" for all branch address outputting. I am not sure if it is the > same thing between ETMv3's "branch output" and ETMv4's "branch > broadcasting", but it makes sense for me to use bit 8 as an unified > config bit to control these two options for ETMv3 and ETMv4 > respectively. > > Just note, I understand this patch set is to enable branch broadcasting > for entire memory region rather than using any comparators (see > TRCBBCTLR) to limit branch broadcasting ranges. This is fine for me and > we could enable ranges later. > > Reviewed-by: Leo Yan Hi Leo, Thanks for the review, I've posted v2, but I only put your reviewed by tag on this commit because I wasn't sure if you meant for the full set. Please take another look Thanks James > >> #define ETM_OPT_CYCACC 12 >> #define ETM_OPT_CTXTID 14 >> #define ETM_OPT_CTXTID2 15 >> @@ -25,6 +26,7 @@ >> #define ETM_OPT_RETSTK 29 >> >> /* ETMv4 CONFIGR programming bits for the ETM OPTs */ >> +#define ETM4_CFG_BIT_BB 3 >> #define ETM4_CFG_BIT_CYCACC 4 >> #define ETM4_CFG_BIT_CTXTID 6 >> #define ETM4_CFG_BIT_VMID 7 >> diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c >> index 293a23bf8be3..c7ef4e9b4a3a 100644 >> --- a/tools/perf/arch/arm/util/cs-etm.c >> +++ b/tools/perf/arch/arm/util/cs-etm.c >> @@ -527,6 +527,9 @@ static u64 cs_etmv4_get_config(struct auxtrace_record *itr) >> if (config_opts & BIT(ETM_OPT_CTXTID2)) >> config |= BIT(ETM4_CFG_BIT_VMID) | >> BIT(ETM4_CFG_BIT_VMID_OPT); >> + if (config_opts & BIT(ETM_OPT_BRANCH_BROADCAST)) >> + config |= BIT(ETM4_CFG_BIT_BB); >> + >> return config; >> } >> >> -- >> 2.28.0 >>