--- v11
+++ v7
@@ -4,98 +4,69 @@
To test this patchset,
Eg:
-$ perf record -I? # list supported registers
+$ perf record -I? # list supported registers
output:
-available registers: r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 nip msr orig_r3 ctr link xer ccr softe trap dar dsisr
- usage: perf record [<options>] [<command>]
- or: perf record [<options>] -- <command> [<options>]
-
- -I, --intr-regs[=<any register>]
- sample selected machine registers on interrupt, use -I ? to list register names
+available registers: gpr0 gpr1 gpr2 gpr3 gpr4 gpr5 gpr6 gpr7 gpr8 gpr9 gpr10 gpr11 gpr12 gpr13 gpr14 gpr15 gpr16 gpr17 gpr18 gpr19 gpr20 gpr21 gpr22 gpr23 gpr24 gpr25 gpr26 gpr27 gpr28 gpr29 gpr30 gpr31 nip msr orig_r3 ctr link xer ccr trap dar dsisr
+usage: perf record [<options>] [<command>]
+or: perf record [<options>] -- <command> [<options>]
+ -I, --intr-regs[=<any register>]
+sample selected machine registers on interrupt, use -I ? to list register names
$ perf record -I ls # record machine state at interrupt
$ perf script -D # read the perf.data file
-Sample output obtained for this patchset/ output looks like as follows:
+Samplfdoutput obtained for this patchset/ output looks like as follows:
-496768515470 0x1988 [0x188]: PERF_RECORD_SAMPLE(IP, 0x1): 4522/4522: 0xc0000000001e538c period: 1 addr: 0
-... intr regs: mask 0x7ffffffffff ABI 64-bit
-.... r0 0xc0000000001e5e34
-.... r1 0xc000000fe733f9a0
-.... r2 0xc000000001523100
-.... r3 0xc000000ffaadeb60
-.... r4 0xc000000003456800
-.... r5 0x73a9b5e000
-.... r6 0x1e000000
-.... r7 0x0
-.... r8 0x0
-.... r9 0x0
-.... r10 0x1
-.... r11 0x0
-.... r12 0x24022822
-.... r13 0xc00000000feec180
-.... r14 0x0
-.... r15 0xc000001e4be18800
-.... r16 0x0
-.... r17 0xc000000ffaac5000
-.... r18 0xc000000fe733f8a0
-.... r19 0xc000000001523100
-.... r20 0xc00000000009fd1c
-.... r21 0xc000000fcaa69000
-.... r22 0xc0000000001e4968
-.... r23 0xc000000001523100
-.... r24 0xc000000fe733f850
-.... r25 0xc000000fcaa69000
-.... r26 0xc000000003b8fcf0
-.... r27 0xfffffffffffffead
-.... r28 0x0
-.... r29 0xc000000fcaa69000
-.... r30 0x1
-.... r31 0x0
-.... nip 0xc0000000001dd320
+178329381464 0x138 [0x180]: PERF_RECORD_SAMPLE(IP, 0x1): 7803/7803: 0xc00000000000fd9c period: 1 addr: 0
+... intr regs: mask 0x3ffffffffff ABI 64-bit
+.... gpr0 0xc0000000001a6420
+.... gpr1 0xc000001e4df039b0
+.... gpr2 0xc000000000cdd100
+.... gpr3 0x1
+.... gpr4 0xc000001e4a96d000
+.... gpr5 0x29854255ba
+.... gpr6 0xc000000ffa3050b8
+.... gpr7 0x0
+.... gpr8 0x0
+.... gpr9 0x0
+.... gpr10 0x0
+.... gpr11 0x0
+.... gpr12 0x24022822
+.... gpr13 0xc00000000fe03000
+.... gpr14 0x0
+.... gpr15 0xc000000000d763f8
+.... gpr16 0x0
+.... gpr17 0xc000001e4ddcf000
+.... gpr18 0x0
+.... gpr19 0xc000000ffa305000
+.... gpr20 0xc000001e4df038c0
+.... gpr21 0xc000001e40ed7a00
+.... gpr22 0xc0000000000aa28c
+.... gpr23 0xc000000000cdd100
+.... gpr24 0x0
+.... gpr25 0xc000000000cdd100
+.... gpr26 0xc000001e4df038b0
+.... gpr27 0xfffffffffffffeae
+.... gpr28 0xc000001e4df03880
+.... gpr29 0xc000000000dce900
+.... gpr30 0xc000001e4df03890
+.... gpr31 0xc000001e355c7a30
+.... nip 0xc0000000001a62d8
.... msr 0x9000000000009032
-.... orig_r3 0xc0000000001e538c
-.... ctr 0xc00000000009d550
-.... link 0xc0000000001e5e34
+.... orig_r3 0xc0000000001a6320
+.... ctr 0xc0000000000a7be0
+.... lnk 0xc0000000001a6428
.... xer 0x0
-.... ccr 0x84022882
-.... softe 0x0
+.... ccr 0x24022888
.... trap 0xf01
-.... dar 0x0
-.... dsisr 0xf00040060000004
- ... thread: :4522:4522
- ...... dso: /root/.debug/.build-id/b0/ef11b1a1629e62ac9de75199117ee5ef9469e9
- :4522 4522 496.768515: 1 cycles: c0000000001e538c .perf_event_context_sched_in (/boot/vmlinux)
-
-
-
-Changes from v10:
-
-- Included SOFTE as suggested by mpe
-- The name of registers displayed is changed from
- gpr* to r* also the macro names changed from
- PERF_REG_POWERPC_GPR* to PERF_REG_POWERPC_R*.
-- The conflict in returning the ABI is resolved.
-- #define PERF_REG_SP is again changed to PERF_REG_POWERPC_R1
-- Comment in tools/perf/config/Makefile is updated.
-- removed the "Reviewed-By" tag as the patch has logic changes.
-
-
-Changes from V9:
-
-- Changed the name displayed for link register from "lnk" to "link" in
- tools/perf/arch/powerpc/include/perf_regs.h
-
-changes from V8:
-
-- Corrected the indentation issue in the Makefile mentioned in 3rd patch
-
-Changes from V7:
-
-- Addressed the new line issue in 3rd patch.
+.... dar 0xc000001e40ed7a00
+.... dsisr 0x3000c0060000004
+ ... thread: :7803:7803
+ ...... dso: /root/.debug/.build-id/d0/eb47b06c0d294143af13c50616f638c2d88658
+ :7803 7803 178.329381: 1 cycles: c00000000000fd9c .arch_local_irq_restore (/boot/vmlinux)
Changes from V6:
@@ -136,7 +107,6 @@
- Added necessary comments in the 3rd patch ie perf/powerpc ,as suggested by Maddy.
-
Anju T (3):
perf/powerpc: assign an id to each powerpc register
perf/powerpc: add support for sampling intr machine state
@@ -145,16 +115,15 @@
Madhavan Srinivasan (1):
tool/perf: Add sample_reg_mask to include all perf_regs regs
-
arch/powerpc/Kconfig | 1 +
- arch/powerpc/include/uapi/asm/perf_regs.h | 50 ++++++++++++++++
+ arch/powerpc/include/uapi/asm/perf_regs.h | 49 +++++++++++++++++
arch/powerpc/perf/Makefile | 1 +
- arch/powerpc/perf/perf_regs.c | 91 +++++++++++++++++++++++++++++
- tools/perf/arch/powerpc/include/perf_regs.h | 69 ++++++++++++++++++++++
+ arch/powerpc/perf/perf_regs.c | 85 +++++++++++++++++++++++++++++
+ tools/perf/arch/powerpc/include/perf_regs.h | 65 ++++++++++++++++++++++
tools/perf/arch/powerpc/util/Build | 1 +
- tools/perf/arch/powerpc/util/perf_regs.c | 49 ++++++++++++++++
+ tools/perf/arch/powerpc/util/perf_regs.c | 48 ++++++++++++++++
tools/perf/config/Makefile | 5 ++
- 8 files changed, 267 insertions(+)
+ 8 files changed, 255 insertions(+)
create mode 100644 arch/powerpc/include/uapi/asm/perf_regs.h
create mode 100644 arch/powerpc/perf/perf_regs.c
create mode 100644 tools/perf/arch/powerpc/include/perf_regs.h