linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Leo Yan <leo.yan@arm.com>
To: Al Grant <Al.Grant@arm.com>
Cc: James Clark <james.clark@linaro.org>,
	Mike Leach <mike.leach@linaro.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Randy Dunlap <rdunlap@infradead.org>,
	"coresight@lists.linaro.org" <coresight@lists.linaro.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>
Subject: Re: [PATCH v7 13/13] coresight: docs: Document etm4x timestamp interval option
Date: Thu, 27 Nov 2025 10:32:58 +0000	[thread overview]
Message-ID: <20251127103258.GQ724103@e132581.arm.com> (raw)
In-Reply-To: <GV1PR08MB1093237396B35459656FF82CA86DEA@GV1PR08MB10932.eurprd08.prod.outlook.com>

On Wed, Nov 26, 2025 at 03:36:58PM +0000, Al Grant wrote:

[...]

> > >> As far as I recall when this command line parameter was a bool then:
> > >> perf -e cs_etm/timestamp/ <program>
> > >> is sufficient to turn on timestamping.
> > >
> > > Hmm... with the latest perf, we must assign value to `timestamp`,
> > > otherwise perf will report error:
> > >
> > >    # /mnt/build/perf record -e cs_etm/timestamp/ -C 0 -- taskset -c 0 ls
> > >    event syntax error: 'cs_etm/timestamp/'
> > >                         \___ Bad event or PMU
> > >
> > >    Unable to find PMU or event on a PMU of 'cs_etm'
> > >
> > >    event syntax error: 'cs_etm/timestamp/'
> > >                         \___ no value assigned for term
> > >
> > >    event syntax error: 'cs_etm/timestamp/'
> > >                         \___ no value assigned for term
> > >    Run 'perf list' for a list of valid events
> > >
> > >
> > 
> > That's unfortunate and not what I expected. And I don't think it makes sense to
> > remove that validation from Perf. The test uses "timestamp=1"
> > so I didn't notice.
> > 
> > Can we accept that people are most likely using the defaults so timestamps are
> > already on and they wouldn't be using it? The only real use case of that at the
> > moment is to do timestamp=0 and that doesn't fail.
> > 
> > Although it's not the default for per-thread mode and I did find the OpenCSD
> > HOWTO.md uses it as an example. timestamps make less sense in per-thread
> > mode as you don't need to correlate between CPUs or watch for context
> > switches.
> 
> Timestamps have a more specialised use in per-thread mode, they are
> as you say less essential for switching in the right context to decode
> the trace, and less relevant to BOLT/AutoFDO style usage where the
> trace is collapsed into a heat-map profile.
> 
> But trace can also be used to get a detailed timeline of CPU activity -
> a non-invasive timeline that can trace even through interrupt-disabled
> kernel code. And for that, having a global constant-frequency timebase
> becomes more useful, both in its own right, and to line up traces
> from each CPU with other CPUs and system-level traces.
> It's also the only way we have to indirectly observe CPU frequency
> adjustments. (Intel's Processor Trace, which is generally similar to
> ETM/ETE, has specific packets that trace CPU frequency changes.)

Just clarify a bit to make sure us on the same page.

This series does not break timestamp functionality, it just changes the
PMU format 'timestamp' from 1-bit to 4-bits for counter support.  The
updated 'timestamp' format still supports per-thread mode and CPU wise
trace modes.

The only difference is now users need to specify 'cs_etm/timestamp=1/'
rather than 'cs_etm/timestamp/' when enabling timestamp.  Given PMU
format is not an ABI, it is fine for me for the updated format.

To avoid confusion for users, a well-written document is deserved —
which is exactly this patch for.  And perf log would be helpful.  I
think we are well prepared for the change.

Thanks,
Leo

  reply	other threads:[~2025-11-27 10:33 UTC|newest]

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

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=20251127103258.GQ724103@e132581.arm.com \
    --to=leo.yan@arm.com \
    --cc=Al.Grant@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 \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).