[PATCH] perf script: Update brstack syntax documentation

Yujie Liu posted 1 patch 9 months, 3 weeks ago
There is a newer version of this series
tools/perf/Documentation/perf-script.txt | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
[PATCH] perf script: Update brstack syntax documentation
Posted by Yujie Liu 9 months, 3 weeks ago
The following commits appended new fields to the end of the branch info
list, such as branch type and branch speculation info.

commit 1f48989cdc7d ("perf script: Output branch sample type")
commit 6ade6c646035 ("perf script: Show branch speculation info")

Update brstack syntax documentation to be consistent with the latest
branch info list. Improve the descriptions to help users interpret the
fields accurately.

Signed-off-by: Yujie Liu <yujie.liu@intel.com>
---
 tools/perf/Documentation/perf-script.txt | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index b72866ef270b..8bd105084280 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -239,13 +239,15 @@ OPTIONS
 	i.e., -F "" is not allowed.
 
 	The brstack output includes branch related information with raw addresses using the
-	/v/v/v/v/cycles syntax in the following order:
-	FROM: branch source instruction
-	TO  : branch target instruction
-        M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
-	X/- : X=branch inside a transactional region, -=not in transaction region or not supported
-	A/- : A=TSX abort entry, -=not aborted region or not supported
-	cycles
+	FROM/TO/PRED/INTX/ABORT/CYCLES/TYPE/SPEC syntax in the following order:
+	FROM  : branch source instruction
+	TO    : branch target instruction
+	PRED  : M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
+	INTX  : X=branch inside a transactional region, -=not in transaction region or not supported
+	ABORT : A=TSX abort entry, -=not aborted region or not supported
+	CYCLES: the number of cycles that have elapsed since the last branch was recorded
+	TYPE  : branch type
+	SPEC  : branch speculation info
 
 	The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
 
-- 
2.34.1
Re: [PATCH] perf script: Update brstack syntax documentation
Posted by Leo Yan 9 months, 1 week ago
Hi Yujie,

Sorry I missed this patch.

On Tue, Feb 25, 2025 at 02:17:36PM +0800, Yujie Liu wrote:
> 
> The following commits appended new fields to the end of the branch info
> list, such as branch type and branch speculation info.
> 
> commit 1f48989cdc7d ("perf script: Output branch sample type")
> commit 6ade6c646035 ("perf script: Show branch speculation info")
> 
> Update brstack syntax documentation to be consistent with the latest
> branch info list. Improve the descriptions to help users interpret the
> fields accurately.
> 
> Signed-off-by: Yujie Liu <yujie.liu@intel.com>
> ---
>  tools/perf/Documentation/perf-script.txt | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
> index b72866ef270b..8bd105084280 100644
> --- a/tools/perf/Documentation/perf-script.txt
> +++ b/tools/perf/Documentation/perf-script.txt
> @@ -239,13 +239,15 @@ OPTIONS
>         i.e., -F "" is not allowed.
> 
>         The brstack output includes branch related information with raw addresses using the
> -       /v/v/v/v/cycles syntax in the following order:
> -       FROM: branch source instruction
> -       TO  : branch target instruction
> -        M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> -       X/- : X=branch inside a transactional region, -=not in transaction region or not supported
> -       A/- : A=TSX abort entry, -=not aborted region or not supported
> -       cycles
> +       FROM/TO/PRED/INTX/ABORT/CYCLES/TYPE/SPEC syntax in the following order:
> +       FROM  : branch source instruction
> +       TO    : branch target instruction
> +       PRED  : M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported

Can we use a more generic naming (e.g., EVENT) for this field?

My patches have added a 'N' flag in this field, which stands for
"Not taken branch".  Later we might extend this field for support new
event types.

Thanks,
Leo

> +       INTX  : X=branch inside a transactional region, -=not in transaction region or not supported
> +       ABORT : A=TSX abort entry, -=not aborted region or not supported
> +       CYCLES: the number of cycles that have elapsed since the last branch was recorded
> +       TYPE  : branch type
> +       SPEC  : branch speculation info
> 
>         The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
> 
> --
> 2.34.1
> 
>
Re: [PATCH] perf script: Update brstack syntax documentation
Posted by Yujie Liu 9 months, 1 week ago
Hi Leo,

On Tue, Mar 11, 2025 at 08:14:43AM +0000, Leo Yan wrote:
> Hi Yujie,
> 
> Sorry I missed this patch.
> 
> On Tue, Feb 25, 2025 at 02:17:36PM +0800, Yujie Liu wrote:
> > 
> > The following commits appended new fields to the end of the branch info
> > list, such as branch type and branch speculation info.
> > 
> > commit 1f48989cdc7d ("perf script: Output branch sample type")
> > commit 6ade6c646035 ("perf script: Show branch speculation info")
> > 
> > Update brstack syntax documentation to be consistent with the latest
> > branch info list. Improve the descriptions to help users interpret the
> > fields accurately.
> > 
> > Signed-off-by: Yujie Liu <yujie.liu@intel.com>
> > ---
> >  tools/perf/Documentation/perf-script.txt | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> > 
> > diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
> > index b72866ef270b..8bd105084280 100644
> > --- a/tools/perf/Documentation/perf-script.txt
> > +++ b/tools/perf/Documentation/perf-script.txt
> > @@ -239,13 +239,15 @@ OPTIONS
> >         i.e., -F "" is not allowed.
> > 
> >         The brstack output includes branch related information with raw addresses using the
> > -       /v/v/v/v/cycles syntax in the following order:
> > -       FROM: branch source instruction
> > -       TO  : branch target instruction
> > -        M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> > -       X/- : X=branch inside a transactional region, -=not in transaction region or not supported
> > -       A/- : A=TSX abort entry, -=not aborted region or not supported
> > -       cycles
> > +       FROM/TO/PRED/INTX/ABORT/CYCLES/TYPE/SPEC syntax in the following order:
> > +       FROM  : branch source instruction
> > +       TO    : branch target instruction
> > +       PRED  : M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> 
> Can we use a more generic naming (e.g., EVENT) for this field?
> 
> My patches have added a 'N' flag in this field, which stands for
> "Not taken branch".  Later we might extend this field for support new
> event types.

Thank you for this feedback. Sure I'll change this field name to EVENT
in the repsin patch.

Thanks,
Yujie

> 
> Thanks,
> Leo
> 
> > +       INTX  : X=branch inside a transactional region, -=not in transaction region or not supported
> > +       ABORT : A=TSX abort entry, -=not aborted region or not supported
> > +       CYCLES: the number of cycles that have elapsed since the last branch was recorded
> > +       TYPE  : branch type
> > +       SPEC  : branch speculation info
> > 
> >         The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
> > 
> > --
> > 2.34.1
> > 
> >
Re: [PATCH] perf script: Update brstack syntax documentation
Posted by Yujie Liu 9 months, 1 week ago
Hi, friendly ping on this perf script doc fix. Thanks.

On Tue, Feb 25, 2025 at 02:17:36PM +0800, Yujie Liu wrote:
> The following commits appended new fields to the end of the branch info
> list, such as branch type and branch speculation info.
> 
> commit 1f48989cdc7d ("perf script: Output branch sample type")
> commit 6ade6c646035 ("perf script: Show branch speculation info")
> 
> Update brstack syntax documentation to be consistent with the latest
> branch info list. Improve the descriptions to help users interpret the
> fields accurately.
> 
> Signed-off-by: Yujie Liu <yujie.liu@intel.com>
> ---
>  tools/perf/Documentation/perf-script.txt | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
> index b72866ef270b..8bd105084280 100644
> --- a/tools/perf/Documentation/perf-script.txt
> +++ b/tools/perf/Documentation/perf-script.txt
> @@ -239,13 +239,15 @@ OPTIONS
>  	i.e., -F "" is not allowed.
>  
>  	The brstack output includes branch related information with raw addresses using the
> -	/v/v/v/v/cycles syntax in the following order:
> -	FROM: branch source instruction
> -	TO  : branch target instruction
> -        M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> -	X/- : X=branch inside a transactional region, -=not in transaction region or not supported
> -	A/- : A=TSX abort entry, -=not aborted region or not supported
> -	cycles
> +	FROM/TO/PRED/INTX/ABORT/CYCLES/TYPE/SPEC syntax in the following order:
> +	FROM  : branch source instruction
> +	TO    : branch target instruction
> +	PRED  : M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> +	INTX  : X=branch inside a transactional region, -=not in transaction region or not supported
> +	ABORT : A=TSX abort entry, -=not aborted region or not supported
> +	CYCLES: the number of cycles that have elapsed since the last branch was recorded
> +	TYPE  : branch type
> +	SPEC  : branch speculation info
>  
>  	The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
>  
> -- 
> 2.34.1
>
Re: [PATCH] perf script: Update brstack syntax documentation
Posted by Namhyung Kim 9 months, 1 week ago
Hello,

On Fri, Mar 07, 2025 at 05:18:12PM +0800, Yujie Liu wrote:
> Hi, friendly ping on this perf script doc fix. Thanks.

Sorry for the late reply.

> 
> On Tue, Feb 25, 2025 at 02:17:36PM +0800, Yujie Liu wrote:
> > The following commits appended new fields to the end of the branch info
> > list, such as branch type and branch speculation info.
> > 
> > commit 1f48989cdc7d ("perf script: Output branch sample type")
> > commit 6ade6c646035 ("perf script: Show branch speculation info")
> > 
> > Update brstack syntax documentation to be consistent with the latest
> > branch info list. Improve the descriptions to help users interpret the
> > fields accurately.

Thanks for your work, but can you please update it again with recent
changes from Leo?

https://lore.kernel.org/linux-perf-users/20250304111240.3378214-1-leo.yan@arm.com/

Thanks,
Namhyung

> > 
> > Signed-off-by: Yujie Liu <yujie.liu@intel.com>
> > ---
> >  tools/perf/Documentation/perf-script.txt | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> > 
> > diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
> > index b72866ef270b..8bd105084280 100644
> > --- a/tools/perf/Documentation/perf-script.txt
> > +++ b/tools/perf/Documentation/perf-script.txt
> > @@ -239,13 +239,15 @@ OPTIONS
> >  	i.e., -F "" is not allowed.
> >  
> >  	The brstack output includes branch related information with raw addresses using the
> > -	/v/v/v/v/cycles syntax in the following order:
> > -	FROM: branch source instruction
> > -	TO  : branch target instruction
> > -        M/P/-: M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> > -	X/- : X=branch inside a transactional region, -=not in transaction region or not supported
> > -	A/- : A=TSX abort entry, -=not aborted region or not supported
> > -	cycles
> > +	FROM/TO/PRED/INTX/ABORT/CYCLES/TYPE/SPEC syntax in the following order:
> > +	FROM  : branch source instruction
> > +	TO    : branch target instruction
> > +	PRED  : M=branch target mispredicted or branch direction was mispredicted, P=target predicted or direction predicted, -=not supported
> > +	INTX  : X=branch inside a transactional region, -=not in transaction region or not supported
> > +	ABORT : A=TSX abort entry, -=not aborted region or not supported
> > +	CYCLES: the number of cycles that have elapsed since the last branch was recorded
> > +	TYPE  : branch type
> > +	SPEC  : branch speculation info
> >  
> >  	The brstacksym is identical to brstack, except that the FROM and TO addresses are printed in a symbolic form if possible.
> >  
> > -- 
> > 2.34.1
> >
Re: [PATCH] perf script: Update brstack syntax documentation
Posted by Yujie Liu 9 months, 1 week ago
On Mon, Mar 10, 2025 at 02:13:56PM -0700, Namhyung Kim wrote:
> > On Tue, Feb 25, 2025 at 02:17:36PM +0800, Yujie Liu wrote:
> > > The following commits appended new fields to the end of the branch info
> > > list, such as branch type and branch speculation info.
> > > 
> > > commit 1f48989cdc7d ("perf script: Output branch sample type")
> > > commit 6ade6c646035 ("perf script: Show branch speculation info")
> > > 
> > > Update brstack syntax documentation to be consistent with the latest
> > > branch info list. Improve the descriptions to help users interpret the
> > > fields accurately.
> 
> Thanks for your work, but can you please update it again with recent
> changes from Leo?
> 
> https://lore.kernel.org/linux-perf-users/20250304111240.3378214-1-leo.yan@arm.com/

Sure. I will respin this patch to align with Leo's recent changes.

Best Regards,
Yujie