[PATCH V2 0/9] Support branch counters in block annotation

kan.liang@linux.intel.com posted 9 patches 1 year, 6 months ago
There is a newer version of this series
tools/perf/Documentation/perf-report.txt |   1 +
tools/perf/Documentation/perf-script.txt |   2 +-
tools/perf/builtin-annotate.c            |  13 +-
tools/perf/builtin-diff.c                |   8 +-
tools/perf/builtin-report.c              |  25 ++-
tools/perf/builtin-script.c              |  69 ++++++-
tools/perf/builtin-top.c                 |   4 +-
tools/perf/tests/shell/record.sh         |  17 +-
tools/perf/ui/browsers/annotate.c        |  18 +-
tools/perf/ui/browsers/hists.c           |  18 +-
tools/perf/util/annotate.c               | 253 +++++++++++++++++++++--
tools/perf/util/annotate.h               |  24 ++-
tools/perf/util/block-info.c             |  66 +++++-
tools/perf/util/block-info.h             |   8 +-
tools/perf/util/branch.h                 |   1 +
tools/perf/util/disasm.c                 |   1 +
tools/perf/util/evlist.c                 |  68 ++++++
tools/perf/util/evlist.h                 |   2 +
tools/perf/util/evsel.c                  |  15 +-
tools/perf/util/evsel.h                  |  14 ++
tools/perf/util/hist.c                   |   5 +-
tools/perf/util/hist.h                   |   2 +-
tools/perf/util/machine.c                |   3 +
23 files changed, 567 insertions(+), 70 deletions(-)
[PATCH V2 0/9] Support branch counters in block annotation
Posted by kan.liang@linux.intel.com 1 year, 6 months ago
From: Kan Liang <kan.liang@linux.intel.com>

Changes since V1:
- Add Acked-by from Namhyung for patch 1 and 2.
- Use array to replace pointer to store the abbr name. (Patch 5)
  (Namhyung)
- Add -v to print the value like "A=<n>,B=<n>", rather than histogram.
  (Patch 6) (Namhyung)

The branch counters logging (A.K.A LBR event logging) introduces a
per-counter indication of precise event occurrences in LBRs. It can
provide a means to attribute exposed retirement latency to combinations
of events across a block of instructions. It also provides a means of
attributing Timed LBR latencies to events.

The kernel support and basic perf tool support have been merged.
https://lore.kernel.org/lkml/20231025201626.3000228-1-kan.liang@linux.intel.com/

This series is to provide advanced perf tool support via adding the
branch counters information in block annotation. It can further
facilitate the analysis of branch blocks.

The patch 1 and 2 are to fix two existing issues of --total-cycles and
the branch counters feature.

The patch 3-9 are the advanced perf tool support.

Here are some examples.

perf annotation:

$perf record -e "{branch-instructions:ppp,branch-misses}:S" -j any,counter
$perf report  --total-cycles --stdio

 # To display the perf.data header info, please use --header/--header-only options.
 #
 #
 # Total Lost Samples: 0
 #
 # Samples: 1M of events 'anon group { branch-instructions:ppp, branch-misses }'
 # Event count (approx.): 1610046
 #
 # Branch counter abbr list:
 # branch-instructions:ppp = A
 # branch-misses = B
 # '-' No event occurs
 # '+' Event occurrences may be lost due to branch counter saturated
 #
 # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles          Branch Counter [Program Block Range]
 # ...............  ..............  ...........  ..........  ......................  ..
 #
           57.55%            2.5M        0.00%           3             |A   |-   |                 ...
           25.27%            1.1M        0.00%           2             |AA  |-   |                 ...
           15.61%          667.2K        0.00%           1             |A   |-   |                 ...
            0.16%            6.9K        0.81%         575             |A   |-   |                 ...
            0.16%            6.8K        1.38%         977             |AA  |-   |                 ...
            0.16%            6.8K        0.04%          28             |AA  |B   |                 ...
            0.15%            6.6K        1.33%         946             |A   |-   |                 ...
            0.11%            4.5K        0.06%          46             |AAA+|-   |                 ...

With -v applied,
$perf report  --total-cycles --stdio -v

 # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles          Branch Counter [Program Block Range]
 # ...............  ..............  ...........  ..........  ......................  ..................
 #
           57.55%            2.5M        0.00%           3               A=1 ,B=-                  ...
           25.27%            1.1M        0.00%           2               A=2 ,B=-                  ...
           15.61%          667.2K        0.00%           1               A=1 ,B=-                  ...
            0.16%            6.9K        0.81%         575               A=1 ,B=-                  ...
            0.16%            6.8K        1.38%         977               A=2 ,B=-                  ...
            0.16%            6.8K        0.04%          28               A=2 ,B=1                  ...
            0.15%            6.6K        1.33%         946               A=1 ,B=-                  ...
            0.11%            4.5K        0.06%          46               A=3+,B=-                  ...

(The below output is in the TUI mode. Users can press 'B' to display
the Branch counter abbr list.)

Samples: 1M of events 'anon group { branch-instructions:ppp, branch-misses }',
4000 Hz, Event count (approx.):
f3  /home/sdp/test/tchain_edit [Percent: local period]
Percent       │ IPC Cycle       Branch Counter (Average IPC: 1.39, IPC Coverage: 29.4%)
              │                                     0000000000401755 <f3>:
  0.00   0.00 │                                       endbr64
              │                                       push    %rbp
              │                                       mov     %rsp,%rbp
              │                                       movl    $0x0,-0x4(%rbp)
  0.00   0.00 │1.33     3          |A   |-   |      ↓ jmp     25
 11.03  11.03 │                                 11:   mov     -0x4(%rbp),%eax
              │                                       and     $0x1,%eax
              │                                       test    %eax,%eax
 17.13  17.13 │2.41     1          |A   |-   |      ↓ je      21
              │                                       addl    $0x1,-0x4(%rbp)
 21.84  21.84 │2.22     2          |AA  |-   |      ↓ jmp     25
 17.13  17.13 │                                 21:   addl    $0x1,-0x4(%rbp)
 21.84  21.84 │                                 25:   cmpl    $0x270f,-0x4(%rbp)
 11.03  11.03 │0.61     3          |A   |-   |      ↑ jle     11
              │                                       nop
              │                                       pop     %rbp
  0.00   0.00 │0.24    20          |AA  |B   |      ← ret

perf script:

$perf script -F +brstackinsn,+brcntr

 # Branch counter abbr list:
 # branch-instructions:ppp = A
 # branch-misses = B
 # '-' No event occurs
 # '+' Event occurrences may be lost due to branch counter saturated
     tchain_edit  332203 3366329.405674:      53030 branch-instructions:ppp:            401781 f3+0x2c (home/sdp/test/tchain_edit)
        f3+31:
        0000000000401774        insn: eb 04                     br_cntr: AA     # PRED 5 cycles [5]
        000000000040177a        insn: 81 7d fc 0f 27 00 00
        0000000000401781        insn: 7e e3                     br_cntr: A      # PRED 1 cycles [6] 2.00 IPC
        0000000000401766        insn: 8b 45 fc
        0000000000401769        insn: 83 e0 01
        000000000040176c        insn: 85 c0

$perf script -F +brstackinsn,+brcntr -v

     tchain_edit  332203 3366329.405674:      53030 branch-instructions:ppp:            401781 f3+0x2c (/home/sdp/test/tchain_edit)
        f3+31:
        0000000000401774        insn: eb 04                     br_cntr: branch-instructions:ppp 2 branch-misses 0      # PRED 5 cycles [5]
        000000000040177a        insn: 81 7d fc 0f 27 00 00
        0000000000401781        insn: 7e e3                     br_cntr: branch-instructions:ppp 1 branch-misses 0      # PRED 1 cycles [6] 2.00 IPC
        0000000000401766        insn: 8b 45 fc
        0000000000401769        insn: 83 e0 01
        000000000040176c        insn: 85 c0

Kan Liang (9):
  perf report: Fix --total-cycles --stdio output error
  perf report: Remove the first overflow check for branch counters
  perf evlist: Save branch counters information
  perf annotate: Save branch counters for each block
  perf evsel: Assign abbr name for the branch counter events
  perf report: Display the branch counter histogram
  perf annotate: Display the branch counter histogram
  perf script: Add branch counters
  perf test: Add new test cases for the branch counter feature

 tools/perf/Documentation/perf-report.txt |   1 +
 tools/perf/Documentation/perf-script.txt |   2 +-
 tools/perf/builtin-annotate.c            |  13 +-
 tools/perf/builtin-diff.c                |   8 +-
 tools/perf/builtin-report.c              |  25 ++-
 tools/perf/builtin-script.c              |  69 ++++++-
 tools/perf/builtin-top.c                 |   4 +-
 tools/perf/tests/shell/record.sh         |  17 +-
 tools/perf/ui/browsers/annotate.c        |  18 +-
 tools/perf/ui/browsers/hists.c           |  18 +-
 tools/perf/util/annotate.c               | 253 +++++++++++++++++++++--
 tools/perf/util/annotate.h               |  24 ++-
 tools/perf/util/block-info.c             |  66 +++++-
 tools/perf/util/block-info.h             |   8 +-
 tools/perf/util/branch.h                 |   1 +
 tools/perf/util/disasm.c                 |   1 +
 tools/perf/util/evlist.c                 |  68 ++++++
 tools/perf/util/evlist.h                 |   2 +
 tools/perf/util/evsel.c                  |  15 +-
 tools/perf/util/evsel.h                  |  14 ++
 tools/perf/util/hist.c                   |   5 +-
 tools/perf/util/hist.h                   |   2 +-
 tools/perf/util/machine.c                |   3 +
 23 files changed, 567 insertions(+), 70 deletions(-)

-- 
2.38.1

Re: [PATCH V2 0/9] Support branch counters in block annotation
Posted by Andi Kleen 1 year, 6 months ago
For the series

Reviewed-by: Andi Kleen <ak@linux.intel.com>
Re: [PATCH V2 0/9] Support branch counters in block annotation
Posted by Namhyung Kim 1 year, 5 months ago
Hello,

On Thu, Aug 08, 2024 at 12:33:15PM -0700, kan.liang@linux.intel.com wrote:
> From: Kan Liang <kan.liang@linux.intel.com>
> 
> Changes since V1:
> - Add Acked-by from Namhyung for patch 1 and 2.
> - Use array to replace pointer to store the abbr name. (Patch 5)
>   (Namhyung)
> - Add -v to print the value like "A=<n>,B=<n>", rather than histogram.
>   (Patch 6) (Namhyung)
> 
> The branch counters logging (A.K.A LBR event logging) introduces a
> per-counter indication of precise event occurrences in LBRs. It can
> provide a means to attribute exposed retirement latency to combinations
> of events across a block of instructions. It also provides a means of
> attributing Timed LBR latencies to events.
> 
> The kernel support and basic perf tool support have been merged.
> https://lore.kernel.org/lkml/20231025201626.3000228-1-kan.liang@linux.intel.com/
> 
> This series is to provide advanced perf tool support via adding the
> branch counters information in block annotation. It can further
> facilitate the analysis of branch blocks.
> 
> The patch 1 and 2 are to fix two existing issues of --total-cycles and
> the branch counters feature.
> 
> The patch 3-9 are the advanced perf tool support.
> 
> Here are some examples.
> 
> perf annotation:
> 
> $perf record -e "{branch-instructions:ppp,branch-misses}:S" -j any,counter
> $perf report  --total-cycles --stdio
> 
>  # To display the perf.data header info, please use --header/--header-only options.
>  #
>  #
>  # Total Lost Samples: 0
>  #
>  # Samples: 1M of events 'anon group { branch-instructions:ppp, branch-misses }'
>  # Event count (approx.): 1610046
>  #
>  # Branch counter abbr list:
>  # branch-instructions:ppp = A
>  # branch-misses = B
>  # '-' No event occurs
>  # '+' Event occurrences may be lost due to branch counter saturated
>  #
>  # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles          Branch Counter [Program Block Range]
>  # ...............  ..............  ...........  ..........  ......................  ..
>  #
>            57.55%            2.5M        0.00%           3             |A   |-   |                 ...
>            25.27%            1.1M        0.00%           2             |AA  |-   |                 ...
>            15.61%          667.2K        0.00%           1             |A   |-   |                 ...
>             0.16%            6.9K        0.81%         575             |A   |-   |                 ...
>             0.16%            6.8K        1.38%         977             |AA  |-   |                 ...
>             0.16%            6.8K        0.04%          28             |AA  |B   |                 ...
>             0.15%            6.6K        1.33%         946             |A   |-   |                 ...
>             0.11%            4.5K        0.06%          46             |AAA+|-   |                 ...
> 
> With -v applied,
> $perf report  --total-cycles --stdio -v
> 
>  # Sampled Cycles%  Sampled Cycles  Avg Cycles%  Avg Cycles          Branch Counter [Program Block Range]
>  # ...............  ..............  ...........  ..........  ......................  ..................
>  #
>            57.55%            2.5M        0.00%           3               A=1 ,B=-                  ...
>            25.27%            1.1M        0.00%           2               A=2 ,B=-                  ...
>            15.61%          667.2K        0.00%           1               A=1 ,B=-                  ...
>             0.16%            6.9K        0.81%         575               A=1 ,B=-                  ...
>             0.16%            6.8K        1.38%         977               A=2 ,B=-                  ...
>             0.16%            6.8K        0.04%          28               A=2 ,B=1                  ...
>             0.15%            6.6K        1.33%         946               A=1 ,B=-                  ...
>             0.11%            4.5K        0.06%          46               A=3+,B=-                  ...
> 
> (The below output is in the TUI mode. Users can press 'B' to display
> the Branch counter abbr list.)
> 
> Samples: 1M of events 'anon group { branch-instructions:ppp, branch-misses }',
> 4000 Hz, Event count (approx.):
> f3  /home/sdp/test/tchain_edit [Percent: local period]
> Percent       │ IPC Cycle       Branch Counter (Average IPC: 1.39, IPC Coverage: 29.4%)
>               │                                     0000000000401755 <f3>:
>   0.00   0.00 │                                       endbr64
>               │                                       push    %rbp
>               │                                       mov     %rsp,%rbp
>               │                                       movl    $0x0,-0x4(%rbp)
>   0.00   0.00 │1.33     3          |A   |-   |      ↓ jmp     25
>  11.03  11.03 │                                 11:   mov     -0x4(%rbp),%eax
>               │                                       and     $0x1,%eax
>               │                                       test    %eax,%eax
>  17.13  17.13 │2.41     1          |A   |-   |      ↓ je      21
>               │                                       addl    $0x1,-0x4(%rbp)
>  21.84  21.84 │2.22     2          |AA  |-   |      ↓ jmp     25
>  17.13  17.13 │                                 21:   addl    $0x1,-0x4(%rbp)
>  21.84  21.84 │                                 25:   cmpl    $0x270f,-0x4(%rbp)
>  11.03  11.03 │0.61     3          |A   |-   |      ↑ jle     11
>               │                                       nop
>               │                                       pop     %rbp
>   0.00   0.00 │0.24    20          |AA  |B   |      ← ret
> 
> perf script:
> 
> $perf script -F +brstackinsn,+brcntr
> 
>  # Branch counter abbr list:
>  # branch-instructions:ppp = A
>  # branch-misses = B
>  # '-' No event occurs
>  # '+' Event occurrences may be lost due to branch counter saturated
>      tchain_edit  332203 3366329.405674:      53030 branch-instructions:ppp:            401781 f3+0x2c (home/sdp/test/tchain_edit)
>         f3+31:
>         0000000000401774        insn: eb 04                     br_cntr: AA     # PRED 5 cycles [5]
>         000000000040177a        insn: 81 7d fc 0f 27 00 00
>         0000000000401781        insn: 7e e3                     br_cntr: A      # PRED 1 cycles [6] 2.00 IPC
>         0000000000401766        insn: 8b 45 fc
>         0000000000401769        insn: 83 e0 01
>         000000000040176c        insn: 85 c0
> 
> $perf script -F +brstackinsn,+brcntr -v
> 
>      tchain_edit  332203 3366329.405674:      53030 branch-instructions:ppp:            401781 f3+0x2c (/home/sdp/test/tchain_edit)
>         f3+31:
>         0000000000401774        insn: eb 04                     br_cntr: branch-instructions:ppp 2 branch-misses 0      # PRED 5 cycles [5]
>         000000000040177a        insn: 81 7d fc 0f 27 00 00
>         0000000000401781        insn: 7e e3                     br_cntr: branch-instructions:ppp 1 branch-misses 0      # PRED 1 cycles [6] 2.00 IPC
>         0000000000401766        insn: 8b 45 fc
>         0000000000401769        insn: 83 e0 01
>         000000000040176c        insn: 85 c0
> 
> Kan Liang (9):
>   perf report: Fix --total-cycles --stdio output error
>   perf report: Remove the first overflow check for branch counters
>   perf evlist: Save branch counters information
>   perf annotate: Save branch counters for each block
>   perf evsel: Assign abbr name for the branch counter events
>   perf report: Display the branch counter histogram
>   perf annotate: Display the branch counter histogram
>   perf script: Add branch counters
>   perf test: Add new test cases for the branch counter feature

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> 
>  tools/perf/Documentation/perf-report.txt |   1 +
>  tools/perf/Documentation/perf-script.txt |   2 +-
>  tools/perf/builtin-annotate.c            |  13 +-
>  tools/perf/builtin-diff.c                |   8 +-
>  tools/perf/builtin-report.c              |  25 ++-
>  tools/perf/builtin-script.c              |  69 ++++++-
>  tools/perf/builtin-top.c                 |   4 +-
>  tools/perf/tests/shell/record.sh         |  17 +-
>  tools/perf/ui/browsers/annotate.c        |  18 +-
>  tools/perf/ui/browsers/hists.c           |  18 +-
>  tools/perf/util/annotate.c               | 253 +++++++++++++++++++++--
>  tools/perf/util/annotate.h               |  24 ++-
>  tools/perf/util/block-info.c             |  66 +++++-
>  tools/perf/util/block-info.h             |   8 +-
>  tools/perf/util/branch.h                 |   1 +
>  tools/perf/util/disasm.c                 |   1 +
>  tools/perf/util/evlist.c                 |  68 ++++++
>  tools/perf/util/evlist.h                 |   2 +
>  tools/perf/util/evsel.c                  |  15 +-
>  tools/perf/util/evsel.h                  |  14 ++
>  tools/perf/util/hist.c                   |   5 +-
>  tools/perf/util/hist.h                   |   2 +-
>  tools/perf/util/machine.c                |   3 +
>  23 files changed, 567 insertions(+), 70 deletions(-)
> 
> -- 
> 2.38.1
> 
Re: [PATCH V2 0/9] Support branch counters in block annotation
Posted by Arnaldo Carvalho de Melo 1 year, 5 months ago
On Mon, Aug 12, 2024 at 12:39:17PM -0700, Namhyung Kim wrote:
> On Thu, Aug 08, 2024 at 12:33:15PM -0700, kan.liang@linux.intel.com wrote:
> > From: Kan Liang <kan.liang@linux.intel.com>
> > Kan Liang (9):
> >   perf report: Fix --total-cycles --stdio output error
> >   perf report: Remove the first overflow check for branch counters
> >   perf evlist: Save branch counters information
> >   perf annotate: Save branch counters for each block
> >   perf evsel: Assign abbr name for the branch counter events
> >   perf report: Display the branch counter histogram
> >   perf annotate: Display the branch counter histogram
> >   perf script: Add branch counters
> >   perf test: Add new test cases for the branch counter feature
> 
> Acked-by: Namhyung Kim <namhyung@kernel.org>

Clashed with something here, can you please take a look and rebase to
what is in perf-tools-next/perf-tools-next?

- Arnaldo

  ✓ [PATCH v2 9/9] perf test: Add new test cases for the branch counter feature
    + Acked-by: Namhyung Kim <namhyung@kernel.org> (✓ DKIM/kernel.org)
    + Reviewed-by: Andi Kleen <ak@linux.intel.com> (✓ DKIM/intel.com)
    + Link: https://lore.kernel.org/r/20240808193324.2027665-10-kan.liang@linux.intel.com
    + Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  ---
  ✓ Signed: DKIM/intel.com (From: kan.liang@linux.intel.com)
---
Total patches: 9
---
Cover: ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.cover
 Link: https://lore.kernel.org/r/20240808193324.2027665-1-kan.liang@linux.intel.com
 Base: not specified
       git am ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.mbx
⬢[acme@toolbox perf-tools-next]$        git am ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.mbx
Applying: perf report: Fix --total-cycles --stdio output error
Applying: perf report: Remove the first overflow check for branch counters
Applying: perf evlist: Save branch counters information
Applying: perf annotate: Save branch counters for each block
Applying: perf evsel: Assign abbr name for the branch counter events
Applying: perf report: Display the branch counter histogram
error: patch failed: tools/perf/util/annotate.h:551
error: tools/perf/util/annotate.h: patch does not apply
Patch failed at 0006 perf report: Display the branch counter histogram
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
⬢[acme@toolbox perf-tools-next]$
Re: [PATCH V2 0/9] Support branch counters in block annotation
Posted by Liang, Kan 1 year, 5 months ago

On 2024-08-12 4:13 p.m., Arnaldo Carvalho de Melo wrote:
> On Mon, Aug 12, 2024 at 12:39:17PM -0700, Namhyung Kim wrote:
>> On Thu, Aug 08, 2024 at 12:33:15PM -0700, kan.liang@linux.intel.com wrote:
>>> From: Kan Liang <kan.liang@linux.intel.com>
>>> Kan Liang (9):
>>>   perf report: Fix --total-cycles --stdio output error
>>>   perf report: Remove the first overflow check for branch counters
>>>   perf evlist: Save branch counters information
>>>   perf annotate: Save branch counters for each block
>>>   perf evsel: Assign abbr name for the branch counter events
>>>   perf report: Display the branch counter histogram
>>>   perf annotate: Display the branch counter histogram
>>>   perf script: Add branch counters
>>>   perf test: Add new test cases for the branch counter feature
>>
>> Acked-by: Namhyung Kim <namhyung@kernel.org>
> 
> Clashed with something here, can you please take a look and rebase to
> what is in perf-tools-next/perf-tools-next?

Tools-next/perf-tools-next doesn't include Weilin's TPEBS patch. So I
fail at the patch 5, rather than patch 6 (the failure you observed.)

Can you please update the perf-tools-next?
Or should I re-base on top of the tmp.perf-tools-next?

$ git branch -v
  master              1639fae5132b Merge tag 'drm-fixes-2023-06-17' of
git://anongit.freedesktop.org/drm/drm
* perf-tools-next     cb1898f58e0f perf annotate-data: Support
--skip-empty option
  tmp.perf-tools-next 9da782071202 perf test: Add test for Intel TPEBS
counting mode
$ git branch --show-current
perf-tools-next

$ git am lbr_event_logging_v2/000*
Applying: perf report: Fix --total-cycles --stdio output error
Applying: perf report: Remove the first overflow check for branch counters
Applying: perf evlist: Save branch counters information
Applying: perf annotate: Save branch counters for each block
Applying: perf evsel: Assign abbr name for the branch counter events
error: patch failed: tools/perf/util/evlist.c:33
error: tools/perf/util/evlist.c: patch does not apply
Patch failed at 0005 perf evsel: Assign abbr name for the branch counter
events

Thanks,
Kan

> 
> - Arnaldo
> 
>   ✓ [PATCH v2 9/9] perf test: Add new test cases for the branch counter feature
>     + Acked-by: Namhyung Kim <namhyung@kernel.org> (✓ DKIM/kernel.org)
>     + Reviewed-by: Andi Kleen <ak@linux.intel.com> (✓ DKIM/intel.com)
>     + Link: https://lore.kernel.org/r/20240808193324.2027665-10-kan.liang@linux.intel.com
>     + Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>   ---
>   ✓ Signed: DKIM/intel.com (From: kan.liang@linux.intel.com)
> ---
> Total patches: 9
> ---
> Cover: ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.cover
>  Link: https://lore.kernel.org/r/20240808193324.2027665-1-kan.liang@linux.intel.com
>  Base: not specified
>        git am ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.mbx
> ⬢[acme@toolbox perf-tools-next]$        git am ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.mbx
> Applying: perf report: Fix --total-cycles --stdio output error
> Applying: perf report: Remove the first overflow check for branch counters
> Applying: perf evlist: Save branch counters information
> Applying: perf annotate: Save branch counters for each block
> Applying: perf evsel: Assign abbr name for the branch counter events
> Applying: perf report: Display the branch counter histogram
> error: patch failed: tools/perf/util/annotate.h:551
> error: tools/perf/util/annotate.h: patch does not apply
> Patch failed at 0006 perf report: Display the branch counter histogram
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
> ⬢[acme@toolbox perf-tools-next]$
Re: [PATCH V2 0/9] Support branch counters in block annotation
Posted by Arnaldo Carvalho de Melo 1 year, 5 months ago
On Tue, Aug 13, 2024 at 11:15:49AM -0400, Liang, Kan wrote:
> 
> 
> On 2024-08-12 4:13 p.m., Arnaldo Carvalho de Melo wrote:
> > On Mon, Aug 12, 2024 at 12:39:17PM -0700, Namhyung Kim wrote:
> >> On Thu, Aug 08, 2024 at 12:33:15PM -0700, kan.liang@linux.intel.com wrote:
> >>> From: Kan Liang <kan.liang@linux.intel.com>
> >>> Kan Liang (9):
> >>>   perf report: Fix --total-cycles --stdio output error
> >>>   perf report: Remove the first overflow check for branch counters
> >>>   perf evlist: Save branch counters information
> >>>   perf annotate: Save branch counters for each block
> >>>   perf evsel: Assign abbr name for the branch counter events
> >>>   perf report: Display the branch counter histogram
> >>>   perf annotate: Display the branch counter histogram
> >>>   perf script: Add branch counters
> >>>   perf test: Add new test cases for the branch counter feature
> >>
> >> Acked-by: Namhyung Kim <namhyung@kernel.org>
> > 
> > Clashed with something here, can you please take a look and rebase to
> > what is in perf-tools-next/perf-tools-next?
> 
> Tools-next/perf-tools-next doesn't include Weilin's TPEBS patch. So I
> fail at the patch 5, rather than patch 6 (the failure you observed.)
> 
> Can you please update the perf-tools-next?
> Or should I re-base on top of the tmp.perf-tools-next?

Do it over tmp.perf-tools-next please this time.

- Arnaldo
 
> $ git branch -v
>   master              1639fae5132b Merge tag 'drm-fixes-2023-06-17' of
> git://anongit.freedesktop.org/drm/drm
> * perf-tools-next     cb1898f58e0f perf annotate-data: Support
> --skip-empty option
>   tmp.perf-tools-next 9da782071202 perf test: Add test for Intel TPEBS
> counting mode
> $ git branch --show-current
> perf-tools-next
> 
> $ git am lbr_event_logging_v2/000*
> Applying: perf report: Fix --total-cycles --stdio output error
> Applying: perf report: Remove the first overflow check for branch counters
> Applying: perf evlist: Save branch counters information
> Applying: perf annotate: Save branch counters for each block
> Applying: perf evsel: Assign abbr name for the branch counter events
> error: patch failed: tools/perf/util/evlist.c:33
> error: tools/perf/util/evlist.c: patch does not apply
> Patch failed at 0005 perf evsel: Assign abbr name for the branch counter
> events
> 
> Thanks,
> Kan
> 
> > 
> > - Arnaldo
> > 
> >   ✓ [PATCH v2 9/9] perf test: Add new test cases for the branch counter feature
> >     + Acked-by: Namhyung Kim <namhyung@kernel.org> (✓ DKIM/kernel.org)
> >     + Reviewed-by: Andi Kleen <ak@linux.intel.com> (✓ DKIM/intel.com)
> >     + Link: https://lore.kernel.org/r/20240808193324.2027665-10-kan.liang@linux.intel.com
> >     + Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> >   ---
> >   ✓ Signed: DKIM/intel.com (From: kan.liang@linux.intel.com)
> > ---
> > Total patches: 9
> > ---
> > Cover: ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.cover
> >  Link: https://lore.kernel.org/r/20240808193324.2027665-1-kan.liang@linux.intel.com
> >  Base: not specified
> >        git am ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.mbx
> > ⬢[acme@toolbox perf-tools-next]$        git am ./v2_20240808_kan_liang_support_branch_counters_in_block_annotation.mbx
> > Applying: perf report: Fix --total-cycles --stdio output error
> > Applying: perf report: Remove the first overflow check for branch counters
> > Applying: perf evlist: Save branch counters information
> > Applying: perf annotate: Save branch counters for each block
> > Applying: perf evsel: Assign abbr name for the branch counter events
> > Applying: perf report: Display the branch counter histogram
> > error: patch failed: tools/perf/util/annotate.h:551
> > error: tools/perf/util/annotate.h: patch does not apply
> > Patch failed at 0006 perf report: Display the branch counter histogram
> > hint: Use 'git am --show-current-patch=diff' to see the failed patch
> > When you have resolved this problem, run "git am --continue".
> > If you prefer to skip this patch, run "git am --skip" instead.
> > To restore the original branch and stop patching, run "git am --abort".
> > ⬢[acme@toolbox perf-tools-next]$