Patch "perf script: Fix brstackinsn for AUXTRACE" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    perf script: Fix brstackinsn for AUXTRACE

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     perf-script-fix-brstackinsn-for-auxtrace.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 838a4377ce48a054b1457eff7aebc7dcdf5e60f5
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date:   Wed Nov 27 11:53:21 2019 +0200

    perf script: Fix brstackinsn for AUXTRACE
    
    [ Upstream commit 0cd032d3b5fcebf5454315400ab310746a81ca53 ]
    
    brstackinsn must be allowed to be set by the user when AUX area data has
    been captured because, in that case, the branch stack might be
    synthesized on the fly. This fixes the following error:
    
    Before:
    
      $ perf record -e '{intel_pt//,cpu/mem_inst_retired.all_loads,aux-sample-size=8192/pp}:u' grep -rqs jhgjhg /boot
      [ perf record: Woken up 19 times to write data ]
      [ perf record: Captured and wrote 2.274 MB perf.data ]
      $ perf script -F +brstackinsn --xed --itrace=i1usl100 | head
      Display of branch stack assembler requested, but non all-branch filter set
      Hint: run 'perf record -b ...'
    
    After:
    
      $ perf record -e '{intel_pt//,cpu/mem_inst_retired.all_loads,aux-sample-size=8192/pp}:u' grep -rqs jhgjhg /boot
      [ perf record: Woken up 19 times to write data ]
      [ perf record: Captured and wrote 2.274 MB perf.data ]
      $ perf script -F +brstackinsn --xed --itrace=i1usl100 | head
                grep 13759 [002]  8091.310257:       1862                                        instructions:uH:      5641d58069eb bmexec+0x86b (/bin/grep)
            bmexec+2485:
            00005641d5806b35                        jnz 0x5641d5806bd0              # MISPRED
            00005641d5806bd0                        movzxb  (%r13,%rdx,1), %eax
            00005641d5806bd6                        add %rdi, %rax
            00005641d5806bd9                        movzxb  -0x1(%rax), %edx
            00005641d5806bdd                        cmp %rax, %r14
            00005641d5806be0                        jnb 0x5641d58069c0              # MISPRED
            mismatch of LBR data and executable
            00005641d58069c0                        movzxb  (%r13,%rdx,1), %edi
    
    Fixes: 48d02a1d5c13 ("perf script: Add 'brstackinsn' for branch stacks")
    Reported-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
    Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
    Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
    Link: http://lore.kernel.org/lkml/20191127095322.15417-1-adrian.hunter@xxxxxxxxx
    Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 6dba8b728d23..3983d6ccd14d 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -448,7 +448,7 @@ static int perf_evsel__check_attr(struct evsel *evsel,
 		       "selected. Hence, no address to lookup the source line number.\n");
 		return -EINVAL;
 	}
-	if (PRINT_FIELD(BRSTACKINSN) &&
+	if (PRINT_FIELD(BRSTACKINSN) && !allow_user_set &&
 	    !(perf_evlist__combined_branch_type(session->evlist) &
 	      PERF_SAMPLE_BRANCH_ANY)) {
 		pr_err("Display of branch stack assembler requested, but non all-branch filter set\n"



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux