Patch "LoongArch: Fix callchain parse error with kernel tracepoint events again" has been added to the 6.1-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

    LoongArch: Fix callchain parse error with kernel tracepoint events again

to the 6.1-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:
     loongarch-fix-callchain-parse-error-with-kernel-trac.patch
and it can be found in the queue-6.1 subdirectory.

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



commit 02129730187195596c43810c2b126baf557538ab
Author: Huacai Chen <chenhuacai@xxxxxxxxxx>
Date:   Tue May 14 12:24:18 2024 +0800

    LoongArch: Fix callchain parse error with kernel tracepoint events again
    
    [ Upstream commit d6af2c76399f98444a5b4de96baf4b362d9f102b ]
    
    With commit d3119bc985fb645 ("LoongArch: Fix callchain parse error with
    kernel tracepoint events"), perf can parse kernel callchain, but not
    complete and sometimes maybe error. The reason is LoongArch's unwinders
    (guess, prologue and orc) don't really need fp (i.e., regs[22]), and
    they use sp (i.e., regs[3]) as the frame address rather than the current
    stack pointer.
    
    Fix that by removing the assignment of regs[22], and instead assign the
    __builtin_frame_address(0) to regs[3].
    
    Without fix:
    
      Children      Self  Command        Shared Object      Symbol
      ........  ........  .............  .................  ................
      33.91%    33.91%    swapper        [kernel.vmlinux]   [k] __schedule
                |
                |--33.04%--__schedule
                |
                 --0.87%--__arch_cpu_idle
                           __schedule
    
    With this fix:
    
      Children      Self  Command        Shared Object      Symbol
      ........  ........  .............  .................  ................
      31.16%    31.16%    swapper        [kernel.vmlinux]   [k] __schedule
                |
                |--20.63%--smpboot_entry
                |          cpu_startup_entry
                |          schedule_idle
                |          __schedule
                |
                 --10.53%--start_kernel
                           cpu_startup_entry
                           schedule_idle
                           __schedule
    
    Fixes: d3119bc985fb645 ("LoongArch: Fix callchain parse error with kernel tracepoint events")
    Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/loongarch/include/asm/perf_event.h b/arch/loongarch/include/asm/perf_event.h
index 52b638059e40b..f948a0676daf8 100644
--- a/arch/loongarch/include/asm/perf_event.h
+++ b/arch/loongarch/include/asm/perf_event.h
@@ -13,8 +13,7 @@
 
 #define perf_arch_fetch_caller_regs(regs, __ip) { \
 	(regs)->csr_era = (__ip); \
-	(regs)->regs[3] = current_stack_pointer; \
-	(regs)->regs[22] = (unsigned long) __builtin_frame_address(0); \
+	(regs)->regs[3] = (unsigned long) __builtin_frame_address(0); \
 }
 
 #endif /* __LOONGARCH_PERF_EVENT_H__ */




[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