All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leo Yan <leo.yan@arm.com>
To: James Clark <james.clark@linaro.org>
Cc: Mike Leach <mike.leach@linaro.org>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Randy Dunlap <rdunlap@infradead.org>,
	coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH v5 03/13] coresight: Refactor etm4_config_timestamp_event()
Date: Thu, 20 Nov 2025 14:18:21 +0000	[thread overview]
Message-ID: <20251120141821.GA724103@e132581.arm.com> (raw)
In-Reply-To: <4090a47c-2208-486b-bd96-47518d7aa90c@linaro.org>

On Thu, Nov 20, 2025 at 01:52:03PM +0000, James Clark wrote:

[...]

> > > +       config->cntr_ctrl[ctridx] = TRCCNTCTLRn_RLDSELF |
> > > +                                   FIELD_PREP(TRCCNTCTLRn_RLDSEL_MASK, ETM_RES_SEL_FALSE) |
> > > +                                   FIELD_PREP(TRCCNTCTLRn_CNTSEL_MASK, ETM_RES_SEL_TRUE);
> > > 
> > 
> > So if we define generic event generators:-
> > 
> > #define ETM4_SEL_RS_PAIR BIT(7)
> > #defiine ETM4_RS_SEL_EVENT_SINGLE(rs_sel_idx) (GENMASK(4:0) & rs_sel_idx)
> > #define ETM4_RS_SEL_EVENT_PAIR(rs_sel_pair_idx) ((GENMASK(3:0) &
> > rs_sel_pair_idx) | ETM4_SEL_RS_PAIR)
> > 
> > these are then reuseable for all registers that need the 8 bit event
> > selectors, beyond just this register.
> > 
> > Thus we now accurately define the fields in the TRCCNTCTLRn
> > 
> > #define TRCCNTCTLRn_RLDEVENT_MASK  GENMASK(15, 8)
> > 
> > and use
> > 
> > FIELD_PREP(TRCCNTCTLRn_RLDEVENT_MASK,
> > ETM4_RS_SEL_EVENT_SINGLE(ETM_RES_SEL_FALSE))
> > 
> > etc.
> > 
> > 
> 
> I'm not sure I agree with that, the Arm ARM has CNTEVENT_TYPE as a regular
> bit in the TRCCNTCTLRn register so it should be set like any other. Hiding
> it as a subfield of "EVENT" when it always exists and always does the same
> thing was maybe seen as a bad decision which is why it was updated?
> 
> Also IMO, beyond using labels instead of raw numbers, the code should just
> show what's programmed into the register. ETM4_RS_SEL_EVENT_SINGLE() would
> be one more macro to jump through to see what's actually happening.

Maybe define a general macro but with extra checking:

  #define TRCCNTCTLRn_RLDEVENT_MASK  GENMASK(15, 8)

  #define ETM4_RS_SEL_EVENT(paired, sel) ({  \
      if (paired)                            \
          assert(!(sel & ~GENMASK(3, 0)));   \
      else                                   \
          assert(!(sel & ~GENMASK(4, 0)));   \
      FIELD_PREP(TRCCNTCTLRn_RLDEVENT_MASK,  \
                 ((paird << 7) | sel));      \
  })

Thanks,
Leo


  reply	other threads:[~2025-11-20 14:18 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-18 16:27 [PATCH v5 00/13] coresight: Update timestamp attribute to be an interval instead of bool James Clark
2025-11-18 16:27 ` [PATCH v5 01/13] coresight: Change syncfreq to be a u8 James Clark
2025-11-18 16:27 ` [PATCH v5 02/13] coresight: Repack struct etmv4_drvdata James Clark
2025-11-18 16:27 ` [PATCH v5 03/13] coresight: Refactor etm4_config_timestamp_event() James Clark
2025-11-20 13:04   ` Mike Leach
2025-11-20 13:52     ` James Clark
2025-11-20 14:18       ` Leo Yan [this message]
2025-11-20 14:25         ` Leo Yan
2025-11-20 14:39           ` Mike Leach
2025-11-20 14:26       ` Mike Leach
2025-11-20 14:42         ` James Clark
2025-11-24  9:42           ` Mike Leach
2025-11-18 16:27 ` [PATCH v5 04/13] coresight: Hide unused ETMv3 format attributes James Clark
2025-11-20 11:21   ` Mike Leach
2025-11-18 16:27 ` [PATCH v5 05/13] coresight: Define format attributes with GEN_PMU_FORMAT_ATTR() James Clark
2025-11-20 15:59   ` Mike Leach
2025-11-18 16:27 ` [PATCH v5 06/13] coresight: Interpret ETMv3 config with ATTR_CFG_GET_FLD() James Clark
2025-11-20 16:08   ` Mike Leach
2025-11-18 16:27 ` [PATCH v5 07/13] coresight: Don't reject unrecognized ETMv3 format attributes James Clark
2025-11-20 14:48   ` Mike Leach
2025-11-18 16:27 ` [PATCH v5 08/13] coresight: Interpret perf config with ATTR_CFG_GET_FLD() James Clark
2025-11-19  9:32   ` Mike Leach
2025-11-19 11:26     ` James Clark
2025-11-19 11:45       ` Mike Leach
2025-11-19 12:00         ` James Clark
2025-11-19 12:36           ` Leo Yan
2025-11-19 13:55             ` James Clark
2025-11-19 14:37               ` Leo Yan
2025-11-19 15:15                 ` James Clark
2025-11-18 16:27 ` [PATCH v5 09/13] coresight: Interpret ETMv4 " James Clark
2025-11-20 16:10   ` Mike Leach
2025-11-18 16:28 ` [PATCH v5 10/13] coresight: Remove misleading definitions James Clark
2025-11-20 11:21   ` Mike Leach
2025-11-20 11:53     ` James Clark
2025-11-18 16:28 ` [PATCH v5 11/13] coresight: Extend width of timestamp format attribute James Clark
2025-11-18 16:28 ` [PATCH v5 12/13] coresight: Allow setting the timestamp interval James Clark
2025-11-18 16:28 ` [PATCH v5 13/13] coresight: docs: Document etm4x timestamp interval option James Clark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251120141821.GA724103@e132581.arm.com \
    --to=leo.yan@arm.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=corbet@lwn.net \
    --cc=coresight@lists.linaro.org \
    --cc=james.clark@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mike.leach@linaro.org \
    --cc=rdunlap@infradead.org \
    --cc=suzuki.poulose@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.