Commit 8f6ee51d authored by Ingo Molnar's avatar Ingo Molnar

Merge tag 'perf-core-for-mingo-5.5-20191119' of...

Merge tag 'perf-core-for-mingo-5.5-20191119' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

x86/insn:

  Adrian Hunter:

  - Add some more Intel instructions to the opcode map:

        cldemote, encls, enclu, enclv, enqcmd, enqcmds, movdir64b,
        movdiri, pconfig, tpause, umonitor, umwait, wbnoinvd.

  - The instruction decoding can be tested using the perf tools'
    "x86 instruction decoder - new instructions" test as folllows:

    $ perf test -v "new " 2>&1 | grep -i cldemote
    Decoded ok: 0f 1c 00                    cldemote (%eax)
    Decoded ok: 0f 1c 05 78 56 34 12        cldemote 0x12345678
    Decoded ok: 0f 1c 84 c8 78 56 34 12     cldemote 0x12345678(%eax,%ecx,8)
    Decoded ok: 0f 1c 00                    cldemote (%rax)
    Decoded ok: 41 0f 1c 00                 cldemote (%r8)
    Decoded ok: 0f 1c 04 25 78 56 34 12     cldemote 0x12345678
    Decoded ok: 0f 1c 84 c8 78 56 34 12     cldemote 0x12345678(%rax,%rcx,8)
    Decoded ok: 41 0f 1c 84 c8 78 56 34 12  cldemote 0x12345678(%r8,%rcx,8)
    $ perf test -v "new " 2>&1 | grep -i tpause
    Decoded ok: 66 0f ae f3                 tpause %ebx
    Decoded ok: 66 0f ae f3                 tpause %ebx
    Decoded ok: 66 41 0f ae f0              tpause %r8d

callchains:

  Adrian Hunter:

  - Fix segfault in thread__resolve_callchain_sample().

perf probe:

  - Line fixes to show only lines where probes can be used with 'perf probe -L',
    and when reporting them via 'perf probe -l'.

  - Support multiprobe events.

perf scripts python:

  Adrian Hunter:

  - Fix use of TRUE with SQLite < 3.23 in exported-sql-viewer.py.

perf maps:

  - Trim 'struct map' by removing the rb_node member for sorting
    by map name, as that is only needed for processing kernel maps,
    and only when classifying symbols by section at load time.
    Sort them by name using qsort() and do lookups using bsearch()
    when map_groups__find_by_name() is used.

perf parse:

  Ian Rogers:

  - Report initial event parsing error, providing a less cryptic message
    to state that a PMU wasn't found in the system.

perf vendor events:

  James Clark:

  - Fix commas so that PMU event files for arm64, power8 and power nine
    become valid JSON.

libtraceevent:

  Konstantin Khlebnikov:

  - Fix parsing of event %o and %X argument types.
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents b0aeb45b a910e466
...@@ -333,7 +333,7 @@ AVXcode: 1 ...@@ -333,7 +333,7 @@ AVXcode: 1
06: CLTS 06: CLTS
07: SYSRET (o64) 07: SYSRET (o64)
08: INVD 08: INVD
09: WBINVD 09: WBINVD | WBNOINVD (F3)
0a: 0a:
0b: UD2 (1B) 0b: UD2 (1B)
0c: 0c:
...@@ -364,7 +364,7 @@ AVXcode: 1 ...@@ -364,7 +364,7 @@ AVXcode: 1
# a ModR/M byte. # a ModR/M byte.
1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev 1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev
1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
1c: 1c: Grp20 (1A),(1C)
1d: 1d:
1e: 1e:
1f: NOP Ev 1f: NOP Ev
...@@ -792,6 +792,8 @@ f3: Grp17 (1A) ...@@ -792,6 +792,8 @@ f3: Grp17 (1A)
f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v) f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v) f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
f9: MOVDIRI My,Gy
EndTable EndTable
Table: 3-byte opcode 2 (0x0f 0x3a) Table: 3-byte opcode 2 (0x0f 0x3a)
...@@ -943,9 +945,9 @@ GrpTable: Grp6 ...@@ -943,9 +945,9 @@ GrpTable: Grp6
EndTable EndTable
GrpTable: Grp7 GrpTable: Grp7
0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) 0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) 1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
3: LIDT Ms 3: LIDT Ms
4: SMSW Mw/Rv 4: SMSW Mw/Rv
5: rdpkru (110),(11B) | wrpkru (111),(11B) 5: rdpkru (110),(11B) | wrpkru (111),(11B)
...@@ -1020,7 +1022,7 @@ GrpTable: Grp15 ...@@ -1020,7 +1022,7 @@ GrpTable: Grp15
3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B) 3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
4: XSAVE | ptwrite Ey (F3),(11B) 4: XSAVE | ptwrite Ey (F3),(11B)
5: XRSTOR | lfence (11B) 5: XRSTOR | lfence (11B)
6: XSAVEOPT | clwb (66) | mfence (11B) 6: XSAVEOPT | clwb (66) | mfence (11B) | TPAUSE Rd (66),(11B) | UMONITOR Rv (F3),(11B) | UMWAIT Rd (F2),(11B)
7: clflush | clflushopt (66) | sfence (11B) 7: clflush | clflushopt (66) | sfence (11B)
EndTable EndTable
...@@ -1051,6 +1053,10 @@ GrpTable: Grp19 ...@@ -1051,6 +1053,10 @@ GrpTable: Grp19
6: vscatterpf1qps/d Wx (66),(ev) 6: vscatterpf1qps/d Wx (66),(ev)
EndTable EndTable
GrpTable: Grp20
0: cldemote Mb
EndTable
# AMD's Prefetch Group # AMD's Prefetch Group
GrpTable: GrpP GrpTable: GrpP
0: PREFETCH 0: PREFETCH
......
...@@ -333,7 +333,7 @@ AVXcode: 1 ...@@ -333,7 +333,7 @@ AVXcode: 1
06: CLTS 06: CLTS
07: SYSRET (o64) 07: SYSRET (o64)
08: INVD 08: INVD
09: WBINVD 09: WBINVD | WBNOINVD (F3)
0a: 0a:
0b: UD2 (1B) 0b: UD2 (1B)
0c: 0c:
...@@ -364,7 +364,7 @@ AVXcode: 1 ...@@ -364,7 +364,7 @@ AVXcode: 1
# a ModR/M byte. # a ModR/M byte.
1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev 1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev
1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
1c: 1c: Grp20 (1A),(1C)
1d: 1d:
1e: 1e:
1f: NOP Ev 1f: NOP Ev
...@@ -792,6 +792,8 @@ f3: Grp17 (1A) ...@@ -792,6 +792,8 @@ f3: Grp17 (1A)
f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v) f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v) f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v) f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
f9: MOVDIRI My,Gy
EndTable EndTable
Table: 3-byte opcode 2 (0x0f 0x3a) Table: 3-byte opcode 2 (0x0f 0x3a)
...@@ -943,9 +945,9 @@ GrpTable: Grp6 ...@@ -943,9 +945,9 @@ GrpTable: Grp6
EndTable EndTable
GrpTable: Grp7 GrpTable: Grp7
0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) 0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B)
1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) 1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B)
2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B)
3: LIDT Ms 3: LIDT Ms
4: SMSW Mw/Rv 4: SMSW Mw/Rv
5: rdpkru (110),(11B) | wrpkru (111),(11B) 5: rdpkru (110),(11B) | wrpkru (111),(11B)
...@@ -1020,7 +1022,7 @@ GrpTable: Grp15 ...@@ -1020,7 +1022,7 @@ GrpTable: Grp15
3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B) 3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B)
4: XSAVE | ptwrite Ey (F3),(11B) 4: XSAVE | ptwrite Ey (F3),(11B)
5: XRSTOR | lfence (11B) 5: XRSTOR | lfence (11B)
6: XSAVEOPT | clwb (66) | mfence (11B) 6: XSAVEOPT | clwb (66) | mfence (11B) | TPAUSE Rd (66),(11B) | UMONITOR Rv (F3),(11B) | UMWAIT Rd (F2),(11B)
7: clflush | clflushopt (66) | sfence (11B) 7: clflush | clflushopt (66) | sfence (11B)
EndTable EndTable
...@@ -1051,6 +1053,10 @@ GrpTable: Grp19 ...@@ -1051,6 +1053,10 @@ GrpTable: Grp19
6: vscatterpf1qps/d Wx (66),(ev) 6: vscatterpf1qps/d Wx (66),(ev)
EndTable EndTable
GrpTable: Grp20
0: cldemote Mb
EndTable
# AMD's Prefetch Group # AMD's Prefetch Group
GrpTable: GrpP GrpTable: GrpP
0: PREFETCH 0: PREFETCH
......
...@@ -4395,8 +4395,10 @@ static struct tep_print_arg *make_bprint_args(char *fmt, void *data, int size, s ...@@ -4395,8 +4395,10 @@ static struct tep_print_arg *make_bprint_args(char *fmt, void *data, int size, s
/* fall through */ /* fall through */
case 'd': case 'd':
case 'u': case 'u':
case 'x':
case 'i': case 'i':
case 'x':
case 'X':
case 'o':
switch (ls) { switch (ls) {
case 0: case 0:
vsize = 4; vsize = 4;
...@@ -5078,10 +5080,11 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct tep_e ...@@ -5078,10 +5080,11 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct tep_e
/* fall through */ /* fall through */
case 'd': case 'd':
case 'u':
case 'i': case 'i':
case 'x': case 'x':
case 'X': case 'X':
case 'u': case 'o':
if (!arg) { if (!arg) {
do_warning_event(event, "no argument match"); do_warning_event(event, "no argument match");
event->flags |= TEP_EVENT_FL_FAILED; event->flags |= TEP_EVENT_FL_FAILED;
......
...@@ -113,10 +113,10 @@ static int is_tracepoint_available(const char *str, struct evlist *evlist) ...@@ -113,10 +113,10 @@ static int is_tracepoint_available(const char *str, struct evlist *evlist)
struct parse_events_error err; struct parse_events_error err;
int ret; int ret;
err.str = NULL; bzero(&err, sizeof(err));
ret = parse_events(evlist, str, &err); ret = parse_events(evlist, str, &err);
if (err.str) if (err.str)
pr_err("%s : %s\n", str, err.str); parse_events_print_error(&err, "tracepoint");
return ret; return ret;
} }
......
...@@ -1647,6 +1647,12 @@ ...@@ -1647,6 +1647,12 @@
"0f ae 30 \txsaveopt (%eax)",}, "0f ae 30 \txsaveopt (%eax)",},
{{0x0f, 0xae, 0xf0, }, 3, 0, "", "", {{0x0f, 0xae, 0xf0, }, 3, 0, "", "",
"0f ae f0 \tmfence ",}, "0f ae f0 \tmfence ",},
{{0x0f, 0x1c, 0x00, }, 3, 0, "", "",
"0f 1c 00 \tcldemote (%eax)",},
{{0x0f, 0x1c, 0x05, 0x78, 0x56, 0x34, 0x12, }, 7, 0, "", "",
"0f 1c 05 78 56 34 12 \tcldemote 0x12345678",},
{{0x0f, 0x1c, 0x84, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 8, 0, "", "",
"0f 1c 84 c8 78 56 34 12 \tcldemote 0x12345678(%eax,%ecx,8)",},
{{0x0f, 0xc7, 0x20, }, 3, 0, "", "", {{0x0f, 0xc7, 0x20, }, 3, 0, "", "",
"0f c7 20 \txsavec (%eax)",}, "0f c7 20 \txsavec (%eax)",},
{{0x0f, 0xc7, 0x25, 0x78, 0x56, 0x34, 0x12, }, 7, 0, "", "", {{0x0f, 0xc7, 0x25, 0x78, 0x56, 0x34, 0x12, }, 7, 0, "", "",
...@@ -1677,3 +1683,49 @@ ...@@ -1677,3 +1683,49 @@
"f3 0f ae 25 78 56 34 12 \tptwritel 0x12345678",}, "f3 0f ae 25 78 56 34 12 \tptwritel 0x12345678",},
{{0xf3, 0x0f, 0xae, 0xa4, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "", {{0xf3, 0x0f, 0xae, 0xa4, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"f3 0f ae a4 c8 78 56 34 12 \tptwritel 0x12345678(%eax,%ecx,8)",}, "f3 0f ae a4 c8 78 56 34 12 \tptwritel 0x12345678(%eax,%ecx,8)",},
{{0x66, 0x0f, 0xae, 0xf3, }, 4, 0, "", "",
"66 0f ae f3 \ttpause %ebx",},
{{0x67, 0xf3, 0x0f, 0xae, 0xf0, }, 5, 0, "", "",
"67 f3 0f ae f0 \tumonitor %ax",},
{{0xf3, 0x0f, 0xae, 0xf0, }, 4, 0, "", "",
"f3 0f ae f0 \tumonitor %eax",},
{{0xf2, 0x0f, 0xae, 0xf0, }, 4, 0, "", "",
"f2 0f ae f0 \tumwait %eax",},
{{0x0f, 0x38, 0xf9, 0x03, }, 4, 0, "", "",
"0f 38 f9 03 \tmovdiri %eax,(%ebx)",},
{{0x0f, 0x38, 0xf9, 0x88, 0x78, 0x56, 0x34, 0x12, }, 8, 0, "", "",
"0f 38 f9 88 78 56 34 12 \tmovdiri %ecx,0x12345678(%eax)",},
{{0x66, 0x0f, 0x38, 0xf8, 0x18, }, 5, 0, "", "",
"66 0f 38 f8 18 \tmovdir64b (%eax),%ebx",},
{{0x66, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"66 0f 38 f8 88 78 56 34 12 \tmovdir64b 0x12345678(%eax),%ecx",},
{{0x67, 0x66, 0x0f, 0x38, 0xf8, 0x1c, }, 6, 0, "", "",
"67 66 0f 38 f8 1c \tmovdir64b (%si),%bx",},
{{0x67, 0x66, 0x0f, 0x38, 0xf8, 0x8c, 0x34, 0x12, }, 8, 0, "", "",
"67 66 0f 38 f8 8c 34 12 \tmovdir64b 0x1234(%si),%cx",},
{{0xf2, 0x0f, 0x38, 0xf8, 0x18, }, 5, 0, "", "",
"f2 0f 38 f8 18 \tenqcmd (%eax),%ebx",},
{{0xf2, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"f2 0f 38 f8 88 78 56 34 12 \tenqcmd 0x12345678(%eax),%ecx",},
{{0x67, 0xf2, 0x0f, 0x38, 0xf8, 0x1c, }, 6, 0, "", "",
"67 f2 0f 38 f8 1c \tenqcmd (%si),%bx",},
{{0x67, 0xf2, 0x0f, 0x38, 0xf8, 0x8c, 0x34, 0x12, }, 8, 0, "", "",
"67 f2 0f 38 f8 8c 34 12 \tenqcmd 0x1234(%si),%cx",},
{{0xf3, 0x0f, 0x38, 0xf8, 0x18, }, 5, 0, "", "",
"f3 0f 38 f8 18 \tenqcmds (%eax),%ebx",},
{{0xf3, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"f3 0f 38 f8 88 78 56 34 12 \tenqcmds 0x12345678(%eax),%ecx",},
{{0x67, 0xf3, 0x0f, 0x38, 0xf8, 0x1c, }, 6, 0, "", "",
"67 f3 0f 38 f8 1c \tenqcmds (%si),%bx",},
{{0x67, 0xf3, 0x0f, 0x38, 0xf8, 0x8c, 0x34, 0x12, }, 8, 0, "", "",
"67 f3 0f 38 f8 8c 34 12 \tenqcmds 0x1234(%si),%cx",},
{{0x0f, 0x01, 0xcf, }, 3, 0, "", "",
"0f 01 cf \tencls ",},
{{0x0f, 0x01, 0xd7, }, 3, 0, "", "",
"0f 01 d7 \tenclu ",},
{{0x0f, 0x01, 0xc0, }, 3, 0, "", "",
"0f 01 c0 \tenclv ",},
{{0x0f, 0x01, 0xc5, }, 3, 0, "", "",
"0f 01 c5 \tpconfig ",},
{{0xf3, 0x0f, 0x09, }, 3, 0, "", "",
"f3 0f 09 \twbnoinvd ",},
...@@ -1667,6 +1667,16 @@ ...@@ -1667,6 +1667,16 @@
"41 0f ae 30 \txsaveopt (%r8)",}, "41 0f ae 30 \txsaveopt (%r8)",},
{{0x0f, 0xae, 0xf0, }, 3, 0, "", "", {{0x0f, 0xae, 0xf0, }, 3, 0, "", "",
"0f ae f0 \tmfence ",}, "0f ae f0 \tmfence ",},
{{0x0f, 0x1c, 0x00, }, 3, 0, "", "",
"0f 1c 00 \tcldemote (%rax)",},
{{0x41, 0x0f, 0x1c, 0x00, }, 4, 0, "", "",
"41 0f 1c 00 \tcldemote (%r8)",},
{{0x0f, 0x1c, 0x04, 0x25, 0x78, 0x56, 0x34, 0x12, }, 8, 0, "", "",
"0f 1c 04 25 78 56 34 12 \tcldemote 0x12345678",},
{{0x0f, 0x1c, 0x84, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 8, 0, "", "",
"0f 1c 84 c8 78 56 34 12 \tcldemote 0x12345678(%rax,%rcx,8)",},
{{0x41, 0x0f, 0x1c, 0x84, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"41 0f 1c 84 c8 78 56 34 12 \tcldemote 0x12345678(%r8,%rcx,8)",},
{{0x0f, 0xc7, 0x20, }, 3, 0, "", "", {{0x0f, 0xc7, 0x20, }, 3, 0, "", "",
"0f c7 20 \txsavec (%rax)",}, "0f c7 20 \txsavec (%rax)",},
{{0x41, 0x0f, 0xc7, 0x20, }, 4, 0, "", "", {{0x41, 0x0f, 0xc7, 0x20, }, 4, 0, "", "",
...@@ -1727,3 +1737,55 @@ ...@@ -1727,3 +1737,55 @@
"f3 48 0f ae a4 c8 78 56 34 12 \tptwriteq 0x12345678(%rax,%rcx,8)",}, "f3 48 0f ae a4 c8 78 56 34 12 \tptwriteq 0x12345678(%rax,%rcx,8)",},
{{0xf3, 0x49, 0x0f, 0xae, 0xa4, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 10, 0, "", "", {{0xf3, 0x49, 0x0f, 0xae, 0xa4, 0xc8, 0x78, 0x56, 0x34, 0x12, }, 10, 0, "", "",
"f3 49 0f ae a4 c8 78 56 34 12 \tptwriteq 0x12345678(%r8,%rcx,8)",}, "f3 49 0f ae a4 c8 78 56 34 12 \tptwriteq 0x12345678(%r8,%rcx,8)",},
{{0x66, 0x0f, 0xae, 0xf3, }, 4, 0, "", "",
"66 0f ae f3 \ttpause %ebx",},
{{0x66, 0x41, 0x0f, 0xae, 0xf0, }, 5, 0, "", "",
"66 41 0f ae f0 \ttpause %r8d",},
{{0x67, 0xf3, 0x0f, 0xae, 0xf0, }, 5, 0, "", "",
"67 f3 0f ae f0 \tumonitor %eax",},
{{0xf3, 0x0f, 0xae, 0xf0, }, 4, 0, "", "",
"f3 0f ae f0 \tumonitor %rax",},
{{0x67, 0xf3, 0x41, 0x0f, 0xae, 0xf0, }, 6, 0, "", "",
"67 f3 41 0f ae f0 \tumonitor %r8d",},
{{0xf2, 0x0f, 0xae, 0xf0, }, 4, 0, "", "",
"f2 0f ae f0 \tumwait %eax",},
{{0xf2, 0x41, 0x0f, 0xae, 0xf0, }, 5, 0, "", "",
"f2 41 0f ae f0 \tumwait %r8d",},
{{0x48, 0x0f, 0x38, 0xf9, 0x03, }, 5, 0, "", "",
"48 0f 38 f9 03 \tmovdiri %rax,(%rbx)",},
{{0x48, 0x0f, 0x38, 0xf9, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"48 0f 38 f9 88 78 56 34 12 \tmovdiri %rcx,0x12345678(%rax)",},
{{0x66, 0x0f, 0x38, 0xf8, 0x18, }, 5, 0, "", "",
"66 0f 38 f8 18 \tmovdir64b (%rax),%rbx",},
{{0x66, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"66 0f 38 f8 88 78 56 34 12 \tmovdir64b 0x12345678(%rax),%rcx",},
{{0x67, 0x66, 0x0f, 0x38, 0xf8, 0x18, }, 6, 0, "", "",
"67 66 0f 38 f8 18 \tmovdir64b (%eax),%ebx",},
{{0x67, 0x66, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 10, 0, "", "",
"67 66 0f 38 f8 88 78 56 34 12 \tmovdir64b 0x12345678(%eax),%ecx",},
{{0xf2, 0x0f, 0x38, 0xf8, 0x18, }, 5, 0, "", "",
"f2 0f 38 f8 18 \tenqcmd (%rax),%rbx",},
{{0xf2, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"f2 0f 38 f8 88 78 56 34 12 \tenqcmd 0x12345678(%rax),%rcx",},
{{0x67, 0xf2, 0x0f, 0x38, 0xf8, 0x18, }, 6, 0, "", "",
"67 f2 0f 38 f8 18 \tenqcmd (%eax),%ebx",},
{{0x67, 0xf2, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 10, 0, "", "",
"67 f2 0f 38 f8 88 78 56 34 12 \tenqcmd 0x12345678(%eax),%ecx",},
{{0xf3, 0x0f, 0x38, 0xf8, 0x18, }, 5, 0, "", "",
"f3 0f 38 f8 18 \tenqcmds (%rax),%rbx",},
{{0xf3, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 9, 0, "", "",
"f3 0f 38 f8 88 78 56 34 12 \tenqcmds 0x12345678(%rax),%rcx",},
{{0x67, 0xf3, 0x0f, 0x38, 0xf8, 0x18, }, 6, 0, "", "",
"67 f3 0f 38 f8 18 \tenqcmds (%eax),%ebx",},
{{0x67, 0xf3, 0x0f, 0x38, 0xf8, 0x88, 0x78, 0x56, 0x34, 0x12, }, 10, 0, "", "",
"67 f3 0f 38 f8 88 78 56 34 12 \tenqcmds 0x12345678(%eax),%ecx",},
{{0x0f, 0x01, 0xcf, }, 3, 0, "", "",
"0f 01 cf \tencls ",},
{{0x0f, 0x01, 0xd7, }, 3, 0, "", "",
"0f 01 d7 \tenclu ",},
{{0x0f, 0x01, 0xc0, }, 3, 0, "", "",
"0f 01 c0 \tenclv ",},
{{0x0f, 0x01, 0xc5, }, 3, 0, "", "",
"0f 01 c5 \tpconfig ",},
{{0xf3, 0x0f, 0x09, }, 3, 0, "", "",
"f3 0f 09 \twbnoinvd ",},
...@@ -1320,6 +1320,14 @@ int main(void) ...@@ -1320,6 +1320,14 @@ int main(void)
asm volatile("xsaveopt (%r8)"); asm volatile("xsaveopt (%r8)");
asm volatile("mfence"); asm volatile("mfence");
/* cldemote m8 */
asm volatile("cldemote (%rax)");
asm volatile("cldemote (%r8)");
asm volatile("cldemote (0x12345678)");
asm volatile("cldemote 0x12345678(%rax,%rcx,8)");
asm volatile("cldemote 0x12345678(%r8,%rcx,8)");
/* xsavec mem */ /* xsavec mem */
asm volatile("xsavec (%rax)"); asm volatile("xsavec (%rax)");
...@@ -1364,6 +1372,48 @@ int main(void) ...@@ -1364,6 +1372,48 @@ int main(void)
asm volatile("ptwriteq 0x12345678(%rax,%rcx,8)"); asm volatile("ptwriteq 0x12345678(%rax,%rcx,8)");
asm volatile("ptwriteq 0x12345678(%r8,%rcx,8)"); asm volatile("ptwriteq 0x12345678(%r8,%rcx,8)");
/* tpause */
asm volatile("tpause %ebx");
asm volatile("tpause %r8d");
/* umonitor */
asm volatile("umonitor %eax");
asm volatile("umonitor %rax");
asm volatile("umonitor %r8d");
/* umwait */
asm volatile("umwait %eax");
asm volatile("umwait %r8d");
/* movdiri */
asm volatile("movdiri %rax,(%rbx)");
asm volatile("movdiri %rcx,0x12345678(%rax)");
/* movdir64b */
asm volatile("movdir64b (%rax),%rbx");
asm volatile("movdir64b 0x12345678(%rax),%rcx");
asm volatile("movdir64b (%eax),%ebx");
asm volatile("movdir64b 0x12345678(%eax),%ecx");
/* enqcmd */
asm volatile("enqcmd (%rax),%rbx");
asm volatile("enqcmd 0x12345678(%rax),%rcx");
asm volatile("enqcmd (%eax),%ebx");
asm volatile("enqcmd 0x12345678(%eax),%ecx");
/* enqcmds */
asm volatile("enqcmds (%rax),%rbx");
asm volatile("enqcmds 0x12345678(%rax),%rcx");
asm volatile("enqcmds (%eax),%ebx");
asm volatile("enqcmds 0x12345678(%eax),%ecx");
#else /* #ifdef __x86_64__ */ #else /* #ifdef __x86_64__ */
/* bound r32, mem (same op code as EVEX prefix) */ /* bound r32, mem (same op code as EVEX prefix) */
...@@ -2656,6 +2706,12 @@ int main(void) ...@@ -2656,6 +2706,12 @@ int main(void)
asm volatile("xsaveopt (%eax)"); asm volatile("xsaveopt (%eax)");
asm volatile("mfence"); asm volatile("mfence");
/* cldemote m8 */
asm volatile("cldemote (%eax)");
asm volatile("cldemote (0x12345678)");
asm volatile("cldemote 0x12345678(%eax,%ecx,8)");
/* xsavec mem */ /* xsavec mem */
asm volatile("xsavec (%eax)"); asm volatile("xsavec (%eax)");
...@@ -2684,8 +2740,61 @@ int main(void) ...@@ -2684,8 +2740,61 @@ int main(void)
asm volatile("ptwritel (0x12345678)"); asm volatile("ptwritel (0x12345678)");
asm volatile("ptwritel 0x12345678(%eax,%ecx,8)"); asm volatile("ptwritel 0x12345678(%eax,%ecx,8)");
/* tpause */
asm volatile("tpause %ebx");
/* umonitor */
asm volatile("umonitor %ax");
asm volatile("umonitor %eax");
/* umwait */
asm volatile("umwait %eax");
/* movdiri */
asm volatile("movdiri %eax,(%ebx)");
asm volatile("movdiri %ecx,0x12345678(%eax)");
/* movdir64b */
asm volatile("movdir64b (%eax),%ebx");
asm volatile("movdir64b 0x12345678(%eax),%ecx");
asm volatile("movdir64b (%si),%bx");
asm volatile("movdir64b 0x1234(%si),%cx");
/* enqcmd */
asm volatile("enqcmd (%eax),%ebx");
asm volatile("enqcmd 0x12345678(%eax),%ecx");
asm volatile("enqcmd (%si),%bx");
asm volatile("enqcmd 0x1234(%si),%cx");
/* enqcmds */
asm volatile("enqcmds (%eax),%ebx");
asm volatile("enqcmds 0x12345678(%eax),%ecx");
asm volatile("enqcmds (%si),%bx");
asm volatile("enqcmds 0x1234(%si),%cx");
#endif /* #ifndef __x86_64__ */ #endif /* #ifndef __x86_64__ */
/* SGX */
asm volatile("encls");
asm volatile("enclu");
asm volatile("enclv");
/* pconfig */
asm volatile("pconfig");
/* wbnoinvd */
asm volatile("wbnoinvd");
/* Following line is a marker for the awk script - do not change */ /* Following line is a marker for the awk script - do not change */
asm volatile("rdtsc"); /* Stop here */ asm volatile("rdtsc"); /* Stop here */
......
...@@ -2148,6 +2148,31 @@ static const char * const __record_usage[] = { ...@@ -2148,6 +2148,31 @@ static const char * const __record_usage[] = {
}; };
const char * const *record_usage = __record_usage; const char * const *record_usage = __record_usage;
static int build_id__process_mmap(struct perf_tool *tool, union perf_event *event,
struct perf_sample *sample, struct machine *machine)
{
/*
* We already have the kernel maps, put in place via perf_session__create_kernel_maps()
* no need to add them twice.
*/
if (!(event->header.misc & PERF_RECORD_MISC_USER))
return 0;
return perf_event__process_mmap(tool, event, sample, machine);
}
static int build_id__process_mmap2(struct perf_tool *tool, union perf_event *event,
struct perf_sample *sample, struct machine *machine)
{
/*
* We already have the kernel maps, put in place via perf_session__create_kernel_maps()
* no need to add them twice.
*/
if (!(event->header.misc & PERF_RECORD_MISC_USER))
return 0;
return perf_event__process_mmap2(tool, event, sample, machine);
}
/* /*
* XXX Ideally would be local to cmd_record() and passed to a record__new * XXX Ideally would be local to cmd_record() and passed to a record__new
* because we need to have access to it in record__exit, that is called * because we need to have access to it in record__exit, that is called
...@@ -2177,8 +2202,8 @@ static struct record record = { ...@@ -2177,8 +2202,8 @@ static struct record record = {
.exit = perf_event__process_exit, .exit = perf_event__process_exit,
.comm = perf_event__process_comm, .comm = perf_event__process_comm,
.namespaces = perf_event__process_namespaces, .namespaces = perf_event__process_namespaces,
.mmap = perf_event__process_mmap, .mmap = build_id__process_mmap,
.mmap2 = perf_event__process_mmap2, .mmap2 = build_id__process_mmap2,
.ordered_events = true, .ordered_events = true,
}, },
}; };
......
...@@ -1307,6 +1307,7 @@ static int add_default_attributes(void) ...@@ -1307,6 +1307,7 @@ static int add_default_attributes(void)
if (stat_config.null_run) if (stat_config.null_run)
return 0; return 0;
bzero(&errinfo, sizeof(errinfo));
if (transaction_run) { if (transaction_run) {
/* Handle -T as -M transaction. Once platform specific metrics /* Handle -T as -M transaction. Once platform specific metrics
* support has been added to the json files, all archictures * support has been added to the json files, all archictures
...@@ -1364,6 +1365,7 @@ static int add_default_attributes(void) ...@@ -1364,6 +1365,7 @@ static int add_default_attributes(void)
return -1; return -1;
} }
if (err) { if (err) {
parse_events_print_error(&errinfo, smi_cost_attrs);
fprintf(stderr, "Cannot set up SMI cost events\n"); fprintf(stderr, "Cannot set up SMI cost events\n");
return -1; return -1;
} }
......
...@@ -3016,11 +3016,18 @@ static bool evlist__add_vfs_getname(struct evlist *evlist) ...@@ -3016,11 +3016,18 @@ static bool evlist__add_vfs_getname(struct evlist *evlist)
{ {
bool found = false; bool found = false;
struct evsel *evsel, *tmp; struct evsel *evsel, *tmp;
struct parse_events_error err = { .idx = 0, }; struct parse_events_error err;
int ret = parse_events(evlist, "probe:vfs_getname*", &err); int ret;
if (ret) bzero(&err, sizeof(err));
ret = parse_events(evlist, "probe:vfs_getname*", &err);
if (ret) {
free(err.str);
free(err.help);
free(err.first_str);
free(err.first_help);
return false; return false;
}
evlist__for_each_entry_safe(evlist, evsel, tmp) { evlist__for_each_entry_safe(evlist, evsel, tmp) {
if (!strstarts(perf_evsel__name(evsel), "probe:vfs_getname")) if (!strstarts(perf_evsel__name(evsel), "probe:vfs_getname"))
...@@ -4832,8 +4839,9 @@ int cmd_trace(int argc, const char **argv) ...@@ -4832,8 +4839,9 @@ int cmd_trace(int argc, const char **argv)
* wrong in more detail. * wrong in more detail.
*/ */
if (trace.perfconfig_events != NULL) { if (trace.perfconfig_events != NULL) {
struct parse_events_error parse_err = { .idx = 0, }; struct parse_events_error parse_err;
bzero(&parse_err, sizeof(parse_err));
err = parse_events(trace.evlist, trace.perfconfig_events, &parse_err); err = parse_events(trace.evlist, trace.perfconfig_events, &parse_err);
if (err) { if (err) {
parse_events_print_error(&parse_err, trace.perfconfig_events); parse_events_print_error(&parse_err, trace.perfconfig_events);
......
[ [
{ {
"ArchStdEvent": "BR_IMMED_SPEC", "ArchStdEvent": "BR_IMMED_SPEC"
}, },
{ {
"ArchStdEvent": "BR_RETURN_SPEC", "ArchStdEvent": "BR_RETURN_SPEC"
}, },
{ {
"ArchStdEvent": "BR_INDIRECT_SPEC", "ArchStdEvent": "BR_INDIRECT_SPEC"
}, },
{ {
"PublicDescription": "Mispredicted or not predicted branch speculatively executed", "PublicDescription": "Mispredicted or not predicted branch speculatively executed",
...@@ -19,5 +19,5 @@ ...@@ -19,5 +19,5 @@
"EventCode": "0x12", "EventCode": "0x12",
"EventName": "BR_PRED", "EventName": "BR_PRED",
"BriefDescription": "Predictable branch" "BriefDescription": "Predictable branch"
}, }
] ]
[ [
{ {
"ArchStdEvent": "BUS_ACCESS_RD", "ArchStdEvent": "BUS_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_WR", "ArchStdEvent": "BUS_ACCESS_WR"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_SHARED", "ArchStdEvent": "BUS_ACCESS_SHARED"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_NOT_SHARED", "ArchStdEvent": "BUS_ACCESS_NOT_SHARED"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_NORMAL", "ArchStdEvent": "BUS_ACCESS_NORMAL"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_PERIPH", "ArchStdEvent": "BUS_ACCESS_PERIPH"
}, },
{ {
"PublicDescription": "Bus access", "PublicDescription": "Bus access",
"EventCode": "0x19", "EventCode": "0x19",
"EventName": "BUS_ACCESS", "EventName": "BUS_ACCESS",
"BriefDescription": "Bus access" "BriefDescription": "Bus access"
}, }
] ]
[ [
{ {
"ArchStdEvent": "L1D_CACHE_RD", "ArchStdEvent": "L1D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WR", "ArchStdEvent": "L1D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_RD", "ArchStdEvent": "L1D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_INVAL", "ArchStdEvent": "L1D_CACHE_INVAL"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_RD", "ArchStdEvent": "L1D_TLB_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_WR", "ArchStdEvent": "L1D_TLB_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_RD", "ArchStdEvent": "L2D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WR", "ArchStdEvent": "L2D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_REFILL_RD", "ArchStdEvent": "L2D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_REFILL_WR", "ArchStdEvent": "L2D_CACHE_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WB_VICTIM", "ArchStdEvent": "L2D_CACHE_WB_VICTIM"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WB_CLEAN", "ArchStdEvent": "L2D_CACHE_WB_CLEAN"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_INVAL", "ArchStdEvent": "L2D_CACHE_INVAL"
}, },
{ {
"PublicDescription": "Level 1 instruction cache refill", "PublicDescription": "Level 1 instruction cache refill",
...@@ -187,5 +187,5 @@ ...@@ -187,5 +187,5 @@
"EventCode": "0x116", "EventCode": "0x116",
"EventName": "PAGE_WALK_L2_STAGE2_HIT", "EventName": "PAGE_WALK_L2_STAGE2_HIT",
"BriefDescription": "Page walk, L2 stage-2 hit" "BriefDescription": "Page walk, L2 stage-2 hit"
}, }
] ]
...@@ -16,5 +16,5 @@ ...@@ -16,5 +16,5 @@
"EventCode": "0x110", "EventCode": "0x110",
"EventName": "Wait_CYCLES", "EventName": "Wait_CYCLES",
"BriefDescription": "Wait state cycle" "BriefDescription": "Wait state cycle"
}, }
] ]
[ [
{ {
"ArchStdEvent": "EXC_UNDEF", "ArchStdEvent": "EXC_UNDEF"
}, },
{ {
"ArchStdEvent": "EXC_SVC", "ArchStdEvent": "EXC_SVC"
}, },
{ {
"ArchStdEvent": "EXC_PABORT", "ArchStdEvent": "EXC_PABORT"
}, },
{ {
"ArchStdEvent": "EXC_DABORT", "ArchStdEvent": "EXC_DABORT"
}, },
{ {
"ArchStdEvent": "EXC_IRQ", "ArchStdEvent": "EXC_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_FIQ", "ArchStdEvent": "EXC_FIQ"
}, },
{ {
"ArchStdEvent": "EXC_HVC", "ArchStdEvent": "EXC_HVC"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_PABORT", "ArchStdEvent": "EXC_TRAP_PABORT"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_DABORT", "ArchStdEvent": "EXC_TRAP_DABORT"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_OTHER", "ArchStdEvent": "EXC_TRAP_OTHER"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_IRQ", "ArchStdEvent": "EXC_TRAP_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_FIQ", "ArchStdEvent": "EXC_TRAP_FIQ"
}, },
{ {
"PublicDescription": "Exception taken", "PublicDescription": "Exception taken",
...@@ -46,5 +46,5 @@ ...@@ -46,5 +46,5 @@
"EventCode": "0x0a", "EventCode": "0x0a",
"EventName": "EXC_RETURN", "EventName": "EXC_RETURN",
"BriefDescription": "Exception return" "BriefDescription": "Exception return"
}, }
] ]
[ [
{ {
"ArchStdEvent": "LD_SPEC", "ArchStdEvent": "LD_SPEC"
}, },
{ {
"ArchStdEvent": "ST_SPEC", "ArchStdEvent": "ST_SPEC"
}, },
{ {
"ArchStdEvent": "LDST_SPEC", "ArchStdEvent": "LDST_SPEC"
}, },
{ {
"ArchStdEvent": "DP_SPEC", "ArchStdEvent": "DP_SPEC"
}, },
{ {
"ArchStdEvent": "ASE_SPEC", "ArchStdEvent": "ASE_SPEC"
}, },
{ {
"ArchStdEvent": "VFP_SPEC", "ArchStdEvent": "VFP_SPEC"
}, },
{ {
"ArchStdEvent": "PC_WRITE_SPEC", "ArchStdEvent": "PC_WRITE_SPEC"
}, },
{ {
"ArchStdEvent": "CRYPTO_SPEC", "ArchStdEvent": "CRYPTO_SPEC"
}, },
{ {
"ArchStdEvent": "ISB_SPEC", "ArchStdEvent": "ISB_SPEC"
}, },
{ {
"ArchStdEvent": "DSB_SPEC", "ArchStdEvent": "DSB_SPEC"
}, },
{ {
"ArchStdEvent": "DMB_SPEC", "ArchStdEvent": "DMB_SPEC"
}, },
{ {
"ArchStdEvent": "RC_LD_SPEC", "ArchStdEvent": "RC_LD_SPEC"
}, },
{ {
"ArchStdEvent": "RC_ST_SPEC", "ArchStdEvent": "RC_ST_SPEC"
}, },
{ {
"PublicDescription": "Instruction architecturally executed, software increment", "PublicDescription": "Instruction architecturally executed, software increment",
...@@ -85,5 +85,5 @@ ...@@ -85,5 +85,5 @@
"EventCode": "0x100", "EventCode": "0x100",
"EventName": "NOP_SPEC", "EventName": "NOP_SPEC",
"BriefDescription": "Speculatively executed, NOP" "BriefDescription": "Speculatively executed, NOP"
}, }
] ]
[ [
{ {
"ArchStdEvent": "LDREX_SPEC", "ArchStdEvent": "LDREX_SPEC"
}, },
{ {
"ArchStdEvent": "STREX_PASS_SPEC", "ArchStdEvent": "STREX_PASS_SPEC"
}, },
{ {
"ArchStdEvent": "STREX_FAIL_SPEC", "ArchStdEvent": "STREX_FAIL_SPEC"
}, },
{ {
"ArchStdEvent": "STREX_SPEC", "ArchStdEvent": "STREX_SPEC"
}, }
] ]
[ [
{ {
"ArchStdEvent": "MEM_ACCESS_RD", "ArchStdEvent": "MEM_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "MEM_ACCESS_WR", "ArchStdEvent": "MEM_ACCESS_WR"
}, },
{ {
"ArchStdEvent": "UNALIGNED_LD_SPEC", "ArchStdEvent": "UNALIGNED_LD_SPEC"
}, },
{ {
"ArchStdEvent": "UNALIGNED_ST_SPEC", "ArchStdEvent": "UNALIGNED_ST_SPEC"
}, },
{ {
"ArchStdEvent": "UNALIGNED_LDST_SPEC", "ArchStdEvent": "UNALIGNED_LDST_SPEC"
}, },
{ {
"PublicDescription": "Data memory access", "PublicDescription": "Data memory access",
...@@ -25,5 +25,5 @@ ...@@ -25,5 +25,5 @@
"EventCode": "0x1a", "EventCode": "0x1a",
"EventName": "MEM_ERROR", "EventName": "MEM_ERROR",
"BriefDescription": "Memory error" "BriefDescription": "Memory error"
}, }
] ]
...@@ -46,5 +46,5 @@ ...@@ -46,5 +46,5 @@
"EventCode": "0x10f", "EventCode": "0x10f",
"EventName": "FX_STALL", "EventName": "FX_STALL",
"BriefDescription": "FX stalled" "BriefDescription": "FX stalled"
}, }
] ]
[ [
{ {
"ArchStdEvent": "BR_INDIRECT_SPEC", "ArchStdEvent": "BR_INDIRECT_SPEC"
}, },
{ {
"EventCode": "0xC9", "EventCode": "0xC9",
......
[ [
{ {
"ArchStdEvent": "BUS_ACCESS_RD", "ArchStdEvent": "BUS_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_WR", "ArchStdEvent": "BUS_ACCESS_WR"
} }
] ]
[ [
{ {
"ArchStdEvent": "EXC_IRQ", "ArchStdEvent": "EXC_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_FIQ", "ArchStdEvent": "EXC_FIQ"
}, },
{ {
"EventCode": "0xC6", "EventCode": "0xC6",
......
[ [
{ {
"ArchStdEvent": "L1D_CACHE_RD", "ArchStdEvent": "L1D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WR", "ArchStdEvent": "L1D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_RD", "ArchStdEvent": "L1D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_WR", "ArchStdEvent": "L1D_CACHE_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WB_VICTIM", "ArchStdEvent": "L1D_CACHE_WB_VICTIM"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WB_CLEAN", "ArchStdEvent": "L1D_CACHE_WB_CLEAN"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_INVAL", "ArchStdEvent": "L1D_CACHE_INVAL"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_RD", "ArchStdEvent": "L1D_TLB_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_WR", "ArchStdEvent": "L1D_TLB_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_RD", "ArchStdEvent": "L2D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WR", "ArchStdEvent": "L2D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_REFILL_RD", "ArchStdEvent": "L2D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_REFILL_WR", "ArchStdEvent": "L2D_CACHE_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WB_VICTIM", "ArchStdEvent": "L2D_CACHE_WB_VICTIM"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WB_CLEAN", "ArchStdEvent": "L2D_CACHE_WB_CLEAN"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_INVAL", "ArchStdEvent": "L2D_CACHE_INVAL"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_RD", "ArchStdEvent": "BUS_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_WR", "ArchStdEvent": "BUS_ACCESS_WR"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_SHARED", "ArchStdEvent": "BUS_ACCESS_SHARED"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_NOT_SHARED", "ArchStdEvent": "BUS_ACCESS_NOT_SHARED"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_NORMAL", "ArchStdEvent": "BUS_ACCESS_NORMAL"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_PERIPH", "ArchStdEvent": "BUS_ACCESS_PERIPH"
}, },
{ {
"ArchStdEvent": "MEM_ACCESS_RD", "ArchStdEvent": "MEM_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "MEM_ACCESS_WR", "ArchStdEvent": "MEM_ACCESS_WR"
}, },
{ {
"ArchStdEvent": "UNALIGNED_LD_SPEC", "ArchStdEvent": "UNALIGNED_LD_SPEC"
}, },
{ {
"ArchStdEvent": "UNALIGNED_ST_SPEC", "ArchStdEvent": "UNALIGNED_ST_SPEC"
}, },
{ {
"ArchStdEvent": "UNALIGNED_LDST_SPEC", "ArchStdEvent": "UNALIGNED_LDST_SPEC"
}, },
{ {
"ArchStdEvent": "LDREX_SPEC", "ArchStdEvent": "LDREX_SPEC"
}, },
{ {
"ArchStdEvent": "STREX_PASS_SPEC", "ArchStdEvent": "STREX_PASS_SPEC"
}, },
{ {
"ArchStdEvent": "STREX_FAIL_SPEC", "ArchStdEvent": "STREX_FAIL_SPEC"
}, },
{ {
"ArchStdEvent": "LD_SPEC", "ArchStdEvent": "LD_SPEC"
}, },
{ {
"ArchStdEvent": "ST_SPEC", "ArchStdEvent": "ST_SPEC"
}, },
{ {
"ArchStdEvent": "LDST_SPEC", "ArchStdEvent": "LDST_SPEC"
}, },
{ {
"ArchStdEvent": "DP_SPEC", "ArchStdEvent": "DP_SPEC"
}, },
{ {
"ArchStdEvent": "ASE_SPEC", "ArchStdEvent": "ASE_SPEC"
}, },
{ {
"ArchStdEvent": "VFP_SPEC", "ArchStdEvent": "VFP_SPEC"
}, },
{ {
"ArchStdEvent": "PC_WRITE_SPEC", "ArchStdEvent": "PC_WRITE_SPEC"
}, },
{ {
"ArchStdEvent": "CRYPTO_SPEC", "ArchStdEvent": "CRYPTO_SPEC"
}, },
{ {
"ArchStdEvent": "BR_IMMED_SPEC", "ArchStdEvent": "BR_IMMED_SPEC"
}, },
{ {
"ArchStdEvent": "BR_RETURN_SPEC", "ArchStdEvent": "BR_RETURN_SPEC"
}, },
{ {
"ArchStdEvent": "BR_INDIRECT_SPEC", "ArchStdEvent": "BR_INDIRECT_SPEC"
}, },
{ {
"ArchStdEvent": "ISB_SPEC", "ArchStdEvent": "ISB_SPEC"
}, },
{ {
"ArchStdEvent": "DSB_SPEC", "ArchStdEvent": "DSB_SPEC"
}, },
{ {
"ArchStdEvent": "DMB_SPEC", "ArchStdEvent": "DMB_SPEC"
}, },
{ {
"ArchStdEvent": "EXC_UNDEF", "ArchStdEvent": "EXC_UNDEF"
}, },
{ {
"ArchStdEvent": "EXC_SVC", "ArchStdEvent": "EXC_SVC"
}, },
{ {
"ArchStdEvent": "EXC_PABORT", "ArchStdEvent": "EXC_PABORT"
}, },
{ {
"ArchStdEvent": "EXC_DABORT", "ArchStdEvent": "EXC_DABORT"
}, },
{ {
"ArchStdEvent": "EXC_IRQ", "ArchStdEvent": "EXC_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_FIQ", "ArchStdEvent": "EXC_FIQ"
}, },
{ {
"ArchStdEvent": "EXC_SMC", "ArchStdEvent": "EXC_SMC"
}, },
{ {
"ArchStdEvent": "EXC_HVC", "ArchStdEvent": "EXC_HVC"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_PABORT", "ArchStdEvent": "EXC_TRAP_PABORT"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_DABORT", "ArchStdEvent": "EXC_TRAP_DABORT"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_OTHER", "ArchStdEvent": "EXC_TRAP_OTHER"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_IRQ", "ArchStdEvent": "EXC_TRAP_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_FIQ", "ArchStdEvent": "EXC_TRAP_FIQ"
}, },
{ {
"ArchStdEvent": "RC_LD_SPEC", "ArchStdEvent": "RC_LD_SPEC"
}, },
{ {
"ArchStdEvent": "RC_ST_SPEC", "ArchStdEvent": "RC_ST_SPEC"
}, }
] ]
[ [
{ {
"ArchStdEvent": "L1D_CACHE_RD", "ArchStdEvent": "L1D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WR", "ArchStdEvent": "L1D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_RD", "ArchStdEvent": "L1D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_WR", "ArchStdEvent": "L1D_CACHE_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_INNER", "ArchStdEvent": "L1D_CACHE_REFILL_INNER"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_OUTER", "ArchStdEvent": "L1D_CACHE_REFILL_OUTER"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WB_VICTIM", "ArchStdEvent": "L1D_CACHE_WB_VICTIM"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WB_CLEAN", "ArchStdEvent": "L1D_CACHE_WB_CLEAN"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_INVAL", "ArchStdEvent": "L1D_CACHE_INVAL"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_RD", "ArchStdEvent": "L1D_TLB_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_WR", "ArchStdEvent": "L1D_TLB_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L1D_TLB_RD", "ArchStdEvent": "L1D_TLB_RD"
}, },
{ {
"ArchStdEvent": "L1D_TLB_WR", "ArchStdEvent": "L1D_TLB_WR"
}, },
{ {
"ArchStdEvent": "L2D_TLB_REFILL_RD", "ArchStdEvent": "L2D_TLB_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L2D_TLB_REFILL_WR", "ArchStdEvent": "L2D_TLB_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L2D_TLB_RD", "ArchStdEvent": "L2D_TLB_RD"
}, },
{ {
"ArchStdEvent": "L2D_TLB_WR", "ArchStdEvent": "L2D_TLB_WR"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_RD", "ArchStdEvent": "BUS_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "BUS_ACCESS_WR", "ArchStdEvent": "BUS_ACCESS_WR"
}, },
{ {
"ArchStdEvent": "MEM_ACCESS_RD", "ArchStdEvent": "MEM_ACCESS_RD"
}, },
{ {
"ArchStdEvent": "MEM_ACCESS_WR", "ArchStdEvent": "MEM_ACCESS_WR"
}, },
{ {
"ArchStdEvent": "UNALIGNED_LD_SPEC", "ArchStdEvent": "UNALIGNED_LD_SPEC"
}, },
{ {
"ArchStdEvent": "UNALIGNED_ST_SPEC", "ArchStdEvent": "UNALIGNED_ST_SPEC"
}, },
{ {
"ArchStdEvent": "UNALIGNED_LDST_SPEC", "ArchStdEvent": "UNALIGNED_LDST_SPEC"
}, },
{ {
"ArchStdEvent": "EXC_UNDEF", "ArchStdEvent": "EXC_UNDEF"
}, },
{ {
"ArchStdEvent": "EXC_SVC", "ArchStdEvent": "EXC_SVC"
}, },
{ {
"ArchStdEvent": "EXC_PABORT", "ArchStdEvent": "EXC_PABORT"
}, },
{ {
"ArchStdEvent": "EXC_DABORT", "ArchStdEvent": "EXC_DABORT"
}, },
{ {
"ArchStdEvent": "EXC_IRQ", "ArchStdEvent": "EXC_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_FIQ", "ArchStdEvent": "EXC_FIQ"
}, },
{ {
"ArchStdEvent": "EXC_SMC", "ArchStdEvent": "EXC_SMC"
}, },
{ {
"ArchStdEvent": "EXC_HVC", "ArchStdEvent": "EXC_HVC"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_PABORT", "ArchStdEvent": "EXC_TRAP_PABORT"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_DABORT", "ArchStdEvent": "EXC_TRAP_DABORT"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_OTHER", "ArchStdEvent": "EXC_TRAP_OTHER"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_IRQ", "ArchStdEvent": "EXC_TRAP_IRQ"
}, },
{ {
"ArchStdEvent": "EXC_TRAP_FIQ", "ArchStdEvent": "EXC_TRAP_FIQ"
} }
] ]
[ [
{ {
"ArchStdEvent": "L1D_CACHE_RD", "ArchStdEvent": "L1D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WR", "ArchStdEvent": "L1D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_RD", "ArchStdEvent": "L1D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_REFILL_WR", "ArchStdEvent": "L1D_CACHE_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WB_VICTIM", "ArchStdEvent": "L1D_CACHE_WB_VICTIM"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_WB_CLEAN", "ArchStdEvent": "L1D_CACHE_WB_CLEAN"
}, },
{ {
"ArchStdEvent": "L1D_CACHE_INVAL", "ArchStdEvent": "L1D_CACHE_INVAL"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_RD", "ArchStdEvent": "L1D_TLB_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L1D_TLB_REFILL_WR", "ArchStdEvent": "L1D_TLB_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L1D_TLB_RD", "ArchStdEvent": "L1D_TLB_RD"
}, },
{ {
"ArchStdEvent": "L1D_TLB_WR", "ArchStdEvent": "L1D_TLB_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_RD", "ArchStdEvent": "L2D_CACHE_RD"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WR", "ArchStdEvent": "L2D_CACHE_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_REFILL_RD", "ArchStdEvent": "L2D_CACHE_REFILL_RD"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_REFILL_WR", "ArchStdEvent": "L2D_CACHE_REFILL_WR"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WB_VICTIM", "ArchStdEvent": "L2D_CACHE_WB_VICTIM"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_WB_CLEAN", "ArchStdEvent": "L2D_CACHE_WB_CLEAN"
}, },
{ {
"ArchStdEvent": "L2D_CACHE_INVAL", "ArchStdEvent": "L2D_CACHE_INVAL"
}, },
{ {
"PublicDescription": "Level 1 instruction cache prefetch access count", "PublicDescription": "Level 1 instruction cache prefetch access count",
"EventCode": "0x102e", "EventCode": "0x102e",
"EventName": "L1I_CACHE_PRF", "EventName": "L1I_CACHE_PRF",
"BriefDescription": "L1I cache prefetch access count", "BriefDescription": "L1I cache prefetch access count"
}, },
{ {
"PublicDescription": "Level 1 instruction cache miss due to prefetch access count", "PublicDescription": "Level 1 instruction cache miss due to prefetch access count",
"EventCode": "0x102f", "EventCode": "0x102f",
"EventName": "L1I_CACHE_PRF_REFILL", "EventName": "L1I_CACHE_PRF_REFILL",
"BriefDescription": "L1I cache miss due to prefetch access count", "BriefDescription": "L1I cache miss due to prefetch access count"
}, },
{ {
"PublicDescription": "Instruction queue is empty", "PublicDescription": "Instruction queue is empty",
"EventCode": "0x1043", "EventCode": "0x1043",
"EventName": "IQ_IS_EMPTY", "EventName": "IQ_IS_EMPTY",
"BriefDescription": "Instruction queue is empty", "BriefDescription": "Instruction queue is empty"
}, },
{ {
"PublicDescription": "Instruction fetch stall cycles", "PublicDescription": "Instruction fetch stall cycles",
"EventCode": "0x1044", "EventCode": "0x1044",
"EventName": "IF_IS_STALL", "EventName": "IF_IS_STALL",
"BriefDescription": "Instruction fetch stall cycles", "BriefDescription": "Instruction fetch stall cycles"
}, },
{ {
"PublicDescription": "Instructions can receive, but not send", "PublicDescription": "Instructions can receive, but not send",
"EventCode": "0x2014", "EventCode": "0x2014",
"EventName": "FETCH_BUBBLE", "EventName": "FETCH_BUBBLE",
"BriefDescription": "Instructions can receive, but not send", "BriefDescription": "Instructions can receive, but not send"
}, },
{ {
"PublicDescription": "Prefetch request from LSU", "PublicDescription": "Prefetch request from LSU",
"EventCode": "0x6013", "EventCode": "0x6013",
"EventName": "PRF_REQ", "EventName": "PRF_REQ",
"BriefDescription": "Prefetch request from LSU", "BriefDescription": "Prefetch request from LSU"
}, },
{ {
"PublicDescription": "Hit on prefetched data", "PublicDescription": "Hit on prefetched data",
"EventCode": "0x6014", "EventCode": "0x6014",
"EventName": "HIT_ON_PRF", "EventName": "HIT_ON_PRF",
"BriefDescription": "Hit on prefetched data", "BriefDescription": "Hit on prefetched data"
}, },
{ {
"PublicDescription": "Cycles of that the number of issuing micro operations are less than 4", "PublicDescription": "Cycles of that the number of issuing micro operations are less than 4",
"EventCode": "0x7001", "EventCode": "0x7001",
"EventName": "EXE_STALL_CYCLE", "EventName": "EXE_STALL_CYCLE",
"BriefDescription": "Cycles of that the number of issue ups are less than 4", "BriefDescription": "Cycles of that the number of issue ups are less than 4"
}, },
{ {
"PublicDescription": "No any micro operation is issued and meanwhile any load operation is not resolved", "PublicDescription": "No any micro operation is issued and meanwhile any load operation is not resolved",
"EventCode": "0x7004", "EventCode": "0x7004",
"EventName": "MEM_STALL_ANYLOAD", "EventName": "MEM_STALL_ANYLOAD",
"BriefDescription": "No any micro operation is issued and meanwhile any load operation is not resolved", "BriefDescription": "No any micro operation is issued and meanwhile any load operation is not resolved"
}, },
{ {
"PublicDescription": "No any micro operation is issued and meanwhile there is any load operation missing L1 cache and pending data refill", "PublicDescription": "No any micro operation is issued and meanwhile there is any load operation missing L1 cache and pending data refill",
"EventCode": "0x7006", "EventCode": "0x7006",
"EventName": "MEM_STALL_L1MISS", "EventName": "MEM_STALL_L1MISS",
"BriefDescription": "No any micro operation is issued and meanwhile there is any load operation missing L1 cache and pending data refill", "BriefDescription": "No any micro operation is issued and meanwhile there is any load operation missing L1 cache and pending data refill"
}, },
{ {
"PublicDescription": "No any micro operation is issued and meanwhile there is any load operation missing both L1 and L2 cache and pending data refill from L3 cache", "PublicDescription": "No any micro operation is issued and meanwhile there is any load operation missing both L1 and L2 cache and pending data refill from L3 cache",
"EventCode": "0x7007", "EventCode": "0x7007",
"EventName": "MEM_STALL_L2MISS", "EventName": "MEM_STALL_L2MISS",
"BriefDescription": "No any micro operation is issued and meanwhile there is any load operation missing both L1 and L2 cache and pending data refill from L3 cache", "BriefDescription": "No any micro operation is issued and meanwhile there is any load operation missing both L1 and L2 cache and pending data refill from L3 cache"
}, }
] ]
...@@ -4,55 +4,55 @@ ...@@ -4,55 +4,55 @@
"EventName": "uncore_hisi_ddrc.flux_wr", "EventName": "uncore_hisi_ddrc.flux_wr",
"BriefDescription": "DDRC total write operations", "BriefDescription": "DDRC total write operations",
"PublicDescription": "DDRC total write operations", "PublicDescription": "DDRC total write operations",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x01", "EventCode": "0x01",
"EventName": "uncore_hisi_ddrc.flux_rd", "EventName": "uncore_hisi_ddrc.flux_rd",
"BriefDescription": "DDRC total read operations", "BriefDescription": "DDRC total read operations",
"PublicDescription": "DDRC total read operations", "PublicDescription": "DDRC total read operations",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x02", "EventCode": "0x02",
"EventName": "uncore_hisi_ddrc.flux_wcmd", "EventName": "uncore_hisi_ddrc.flux_wcmd",
"BriefDescription": "DDRC write commands", "BriefDescription": "DDRC write commands",
"PublicDescription": "DDRC write commands", "PublicDescription": "DDRC write commands",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x03", "EventCode": "0x03",
"EventName": "uncore_hisi_ddrc.flux_rcmd", "EventName": "uncore_hisi_ddrc.flux_rcmd",
"BriefDescription": "DDRC read commands", "BriefDescription": "DDRC read commands",
"PublicDescription": "DDRC read commands", "PublicDescription": "DDRC read commands",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x04", "EventCode": "0x04",
"EventName": "uncore_hisi_ddrc.pre_cmd", "EventName": "uncore_hisi_ddrc.pre_cmd",
"BriefDescription": "DDRC precharge commands", "BriefDescription": "DDRC precharge commands",
"PublicDescription": "DDRC precharge commands", "PublicDescription": "DDRC precharge commands",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x05", "EventCode": "0x05",
"EventName": "uncore_hisi_ddrc.act_cmd", "EventName": "uncore_hisi_ddrc.act_cmd",
"BriefDescription": "DDRC active commands", "BriefDescription": "DDRC active commands",
"PublicDescription": "DDRC active commands", "PublicDescription": "DDRC active commands",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x06", "EventCode": "0x06",
"EventName": "uncore_hisi_ddrc.rnk_chg", "EventName": "uncore_hisi_ddrc.rnk_chg",
"BriefDescription": "DDRC rank commands", "BriefDescription": "DDRC rank commands",
"PublicDescription": "DDRC rank commands", "PublicDescription": "DDRC rank commands",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, },
{ {
"EventCode": "0x07", "EventCode": "0x07",
"EventName": "uncore_hisi_ddrc.rw_chg", "EventName": "uncore_hisi_ddrc.rw_chg",
"BriefDescription": "DDRC read and write changes", "BriefDescription": "DDRC read and write changes",
"PublicDescription": "DDRC read and write changes", "PublicDescription": "DDRC read and write changes",
"Unit": "hisi_sccl,ddrc", "Unit": "hisi_sccl,ddrc"
}, }
] ]
...@@ -4,69 +4,69 @@ ...@@ -4,69 +4,69 @@
"EventName": "uncore_hisi_hha.rx_ops_num", "EventName": "uncore_hisi_hha.rx_ops_num",
"BriefDescription": "The number of all operations received by the HHA", "BriefDescription": "The number of all operations received by the HHA",
"PublicDescription": "The number of all operations received by the HHA", "PublicDescription": "The number of all operations received by the HHA",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x01", "EventCode": "0x01",
"EventName": "uncore_hisi_hha.rx_outer", "EventName": "uncore_hisi_hha.rx_outer",
"BriefDescription": "The number of all operations received by the HHA from another socket", "BriefDescription": "The number of all operations received by the HHA from another socket",
"PublicDescription": "The number of all operations received by the HHA from another socket", "PublicDescription": "The number of all operations received by the HHA from another socket",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x02", "EventCode": "0x02",
"EventName": "uncore_hisi_hha.rx_sccl", "EventName": "uncore_hisi_hha.rx_sccl",
"BriefDescription": "The number of all operations received by the HHA from another SCCL in this socket", "BriefDescription": "The number of all operations received by the HHA from another SCCL in this socket",
"PublicDescription": "The number of all operations received by the HHA from another SCCL in this socket", "PublicDescription": "The number of all operations received by the HHA from another SCCL in this socket",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x03", "EventCode": "0x03",
"EventName": "uncore_hisi_hha.rx_ccix", "EventName": "uncore_hisi_hha.rx_ccix",
"BriefDescription": "Count of the number of operations that HHA has received from CCIX", "BriefDescription": "Count of the number of operations that HHA has received from CCIX",
"PublicDescription": "Count of the number of operations that HHA has received from CCIX", "PublicDescription": "Count of the number of operations that HHA has received from CCIX",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x1c", "EventCode": "0x1c",
"EventName": "uncore_hisi_hha.rd_ddr_64b", "EventName": "uncore_hisi_hha.rd_ddr_64b",
"BriefDescription": "The number of read operations sent by HHA to DDRC which size is 64 bytes", "BriefDescription": "The number of read operations sent by HHA to DDRC which size is 64 bytes",
"PublicDescription": "The number of read operations sent by HHA to DDRC which size is 64bytes", "PublicDescription": "The number of read operations sent by HHA to DDRC which size is 64bytes",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x1d", "EventCode": "0x1d",
"EventName": "uncore_hisi_hha.wr_ddr_64b", "EventName": "uncore_hisi_hha.wr_ddr_64b",
"BriefDescription": "The number of write operations sent by HHA to DDRC which size is 64 bytes", "BriefDescription": "The number of write operations sent by HHA to DDRC which size is 64 bytes",
"PublicDescription": "The number of write operations sent by HHA to DDRC which size is 64 bytes", "PublicDescription": "The number of write operations sent by HHA to DDRC which size is 64 bytes",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x1e", "EventCode": "0x1e",
"EventName": "uncore_hisi_hha.rd_ddr_128b", "EventName": "uncore_hisi_hha.rd_ddr_128b",
"BriefDescription": "The number of read operations sent by HHA to DDRC which size is 128 bytes", "BriefDescription": "The number of read operations sent by HHA to DDRC which size is 128 bytes",
"PublicDescription": "The number of read operations sent by HHA to DDRC which size is 128 bytes", "PublicDescription": "The number of read operations sent by HHA to DDRC which size is 128 bytes",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x1f", "EventCode": "0x1f",
"EventName": "uncore_hisi_hha.wr_ddr_128b", "EventName": "uncore_hisi_hha.wr_ddr_128b",
"BriefDescription": "The number of write operations sent by HHA to DDRC which size is 128 bytes", "BriefDescription": "The number of write operations sent by HHA to DDRC which size is 128 bytes",
"PublicDescription": "The number of write operations sent by HHA to DDRC which size is 128 bytes", "PublicDescription": "The number of write operations sent by HHA to DDRC which size is 128 bytes",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x20", "EventCode": "0x20",
"EventName": "uncore_hisi_hha.spill_num", "EventName": "uncore_hisi_hha.spill_num",
"BriefDescription": "Count of the number of spill operations that the HHA has sent", "BriefDescription": "Count of the number of spill operations that the HHA has sent",
"PublicDescription": "Count of the number of spill operations that the HHA has sent", "PublicDescription": "Count of the number of spill operations that the HHA has sent",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, },
{ {
"EventCode": "0x21", "EventCode": "0x21",
"EventName": "uncore_hisi_hha.spill_success", "EventName": "uncore_hisi_hha.spill_success",
"BriefDescription": "Count of the number of successful spill operations that the HHA has sent", "BriefDescription": "Count of the number of successful spill operations that the HHA has sent",
"PublicDescription": "Count of the number of successful spill operations that the HHA has sent", "PublicDescription": "Count of the number of successful spill operations that the HHA has sent",
"Unit": "hisi_sccl,hha", "Unit": "hisi_sccl,hha"
}, }
] ]
...@@ -4,90 +4,90 @@ ...@@ -4,90 +4,90 @@
"EventName": "uncore_hisi_l3c.rd_cpipe", "EventName": "uncore_hisi_l3c.rd_cpipe",
"BriefDescription": "Total read accesses", "BriefDescription": "Total read accesses",
"PublicDescription": "Total read accesses", "PublicDescription": "Total read accesses",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x01", "EventCode": "0x01",
"EventName": "uncore_hisi_l3c.wr_cpipe", "EventName": "uncore_hisi_l3c.wr_cpipe",
"BriefDescription": "Total write accesses", "BriefDescription": "Total write accesses",
"PublicDescription": "Total write accesses", "PublicDescription": "Total write accesses",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x02", "EventCode": "0x02",
"EventName": "uncore_hisi_l3c.rd_hit_cpipe", "EventName": "uncore_hisi_l3c.rd_hit_cpipe",
"BriefDescription": "Total read hits", "BriefDescription": "Total read hits",
"PublicDescription": "Total read hits", "PublicDescription": "Total read hits",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x03", "EventCode": "0x03",
"EventName": "uncore_hisi_l3c.wr_hit_cpipe", "EventName": "uncore_hisi_l3c.wr_hit_cpipe",
"BriefDescription": "Total write hits", "BriefDescription": "Total write hits",
"PublicDescription": "Total write hits", "PublicDescription": "Total write hits",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x04", "EventCode": "0x04",
"EventName": "uncore_hisi_l3c.victim_num", "EventName": "uncore_hisi_l3c.victim_num",
"BriefDescription": "l3c precharge commands", "BriefDescription": "l3c precharge commands",
"PublicDescription": "l3c precharge commands", "PublicDescription": "l3c precharge commands",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x20", "EventCode": "0x20",
"EventName": "uncore_hisi_l3c.rd_spipe", "EventName": "uncore_hisi_l3c.rd_spipe",
"BriefDescription": "Count of the number of read lines that come from this cluster of CPU core in spipe", "BriefDescription": "Count of the number of read lines that come from this cluster of CPU core in spipe",
"PublicDescription": "Count of the number of read lines that come from this cluster of CPU core in spipe", "PublicDescription": "Count of the number of read lines that come from this cluster of CPU core in spipe",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x21", "EventCode": "0x21",
"EventName": "uncore_hisi_l3c.wr_spipe", "EventName": "uncore_hisi_l3c.wr_spipe",
"BriefDescription": "Count of the number of write lines that come from this cluster of CPU core in spipe", "BriefDescription": "Count of the number of write lines that come from this cluster of CPU core in spipe",
"PublicDescription": "Count of the number of write lines that come from this cluster of CPU core in spipe", "PublicDescription": "Count of the number of write lines that come from this cluster of CPU core in spipe",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x22", "EventCode": "0x22",
"EventName": "uncore_hisi_l3c.rd_hit_spipe", "EventName": "uncore_hisi_l3c.rd_hit_spipe",
"BriefDescription": "Count of the number of read lines that hits in spipe of this L3C", "BriefDescription": "Count of the number of read lines that hits in spipe of this L3C",
"PublicDescription": "Count of the number of read lines that hits in spipe of this L3C", "PublicDescription": "Count of the number of read lines that hits in spipe of this L3C",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x23", "EventCode": "0x23",
"EventName": "uncore_hisi_l3c.wr_hit_spipe", "EventName": "uncore_hisi_l3c.wr_hit_spipe",
"BriefDescription": "Count of the number of write lines that hits in spipe of this L3C", "BriefDescription": "Count of the number of write lines that hits in spipe of this L3C",
"PublicDescription": "Count of the number of write lines that hits in spipe of this L3C", "PublicDescription": "Count of the number of write lines that hits in spipe of this L3C",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x29", "EventCode": "0x29",
"EventName": "uncore_hisi_l3c.back_invalid", "EventName": "uncore_hisi_l3c.back_invalid",
"BriefDescription": "Count of the number of L3C back invalid operations", "BriefDescription": "Count of the number of L3C back invalid operations",
"PublicDescription": "Count of the number of L3C back invalid operations", "PublicDescription": "Count of the number of L3C back invalid operations",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x40", "EventCode": "0x40",
"EventName": "uncore_hisi_l3c.retry_cpu", "EventName": "uncore_hisi_l3c.retry_cpu",
"BriefDescription": "Count of the number of retry that L3C suppresses the CPU operations", "BriefDescription": "Count of the number of retry that L3C suppresses the CPU operations",
"PublicDescription": "Count of the number of retry that L3C suppresses the CPU operations", "PublicDescription": "Count of the number of retry that L3C suppresses the CPU operations",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x41", "EventCode": "0x41",
"EventName": "uncore_hisi_l3c.retry_ring", "EventName": "uncore_hisi_l3c.retry_ring",
"BriefDescription": "Count of the number of retry that L3C suppresses the ring operations", "BriefDescription": "Count of the number of retry that L3C suppresses the ring operations",
"PublicDescription": "Count of the number of retry that L3C suppresses the ring operations", "PublicDescription": "Count of the number of retry that L3C suppresses the ring operations",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, },
{ {
"EventCode": "0x42", "EventCode": "0x42",
"EventName": "uncore_hisi_l3c.prefetch_drop", "EventName": "uncore_hisi_l3c.prefetch_drop",
"BriefDescription": "Count of the number of prefetch drops from this L3C", "BriefDescription": "Count of the number of prefetch drops from this L3C",
"PublicDescription": "Count of the number of prefetch drops from this L3C", "PublicDescription": "Count of the number of prefetch drops from this L3C",
"Unit": "hisi_sccl,l3c", "Unit": "hisi_sccl,l3c"
}, }
] ]
[ [
{, {
"EventCode": "0x2000e", "EventCode": "0x2000e",
"EventName": "PM_FXU_BUSY", "EventName": "PM_FXU_BUSY",
"BriefDescription": "fxu0 busy and fxu1 busy", "BriefDescription": "fxu0 busy and fxu1 busy",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1000e", "EventCode": "0x1000e",
"EventName": "PM_FXU_IDLE", "EventName": "PM_FXU_IDLE",
"BriefDescription": "fxu0 idle and fxu1 idle", "BriefDescription": "fxu0 idle and fxu1 idle",
"PublicDescription": "" "PublicDescription": ""
}, }
] ]
[ [
{, {
"EventCode": "0x20010", "EventCode": "0x20010",
"EventName": "PM_PMC1_OVERFLOW", "EventName": "PM_PMC1_OVERFLOW",
"BriefDescription": "Overflow from counter 1", "BriefDescription": "Overflow from counter 1",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x30010", "EventCode": "0x30010",
"EventName": "PM_PMC2_OVERFLOW", "EventName": "PM_PMC2_OVERFLOW",
"BriefDescription": "Overflow from counter 2", "BriefDescription": "Overflow from counter 2",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x30020", "EventCode": "0x30020",
"EventName": "PM_PMC2_REWIND", "EventName": "PM_PMC2_REWIND",
"BriefDescription": "PMC2 Rewind Event (did not match condition)", "BriefDescription": "PMC2 Rewind Event (did not match condition)",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x10022", "EventCode": "0x10022",
"EventName": "PM_PMC2_SAVED", "EventName": "PM_PMC2_SAVED",
"BriefDescription": "PMC2 Rewind Value saved", "BriefDescription": "PMC2 Rewind Value saved",
"PublicDescription": "PMC2 Rewind Value saved (matched condition)" "PublicDescription": "PMC2 Rewind Value saved (matched condition)"
}, },
{, {
"EventCode": "0x40010", "EventCode": "0x40010",
"EventName": "PM_PMC3_OVERFLOW", "EventName": "PM_PMC3_OVERFLOW",
"BriefDescription": "Overflow from counter 3", "BriefDescription": "Overflow from counter 3",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x10010", "EventCode": "0x10010",
"EventName": "PM_PMC4_OVERFLOW", "EventName": "PM_PMC4_OVERFLOW",
"BriefDescription": "Overflow from counter 4", "BriefDescription": "Overflow from counter 4",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x10020", "EventCode": "0x10020",
"EventName": "PM_PMC4_REWIND", "EventName": "PM_PMC4_REWIND",
"BriefDescription": "PMC4 Rewind Event", "BriefDescription": "PMC4 Rewind Event",
"PublicDescription": "PMC4 Rewind Event (did not match condition)" "PublicDescription": "PMC4 Rewind Event (did not match condition)"
}, },
{, {
"EventCode": "0x30022", "EventCode": "0x30022",
"EventName": "PM_PMC4_SAVED", "EventName": "PM_PMC4_SAVED",
"BriefDescription": "PMC4 Rewind Value saved (matched condition)", "BriefDescription": "PMC4 Rewind Value saved (matched condition)",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x10024", "EventCode": "0x10024",
"EventName": "PM_PMC5_OVERFLOW", "EventName": "PM_PMC5_OVERFLOW",
"BriefDescription": "Overflow from counter 5", "BriefDescription": "Overflow from counter 5",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x30024", "EventCode": "0x30024",
"EventName": "PM_PMC6_OVERFLOW", "EventName": "PM_PMC6_OVERFLOW",
"BriefDescription": "Overflow from counter 6", "BriefDescription": "Overflow from counter 6",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x400f4", "EventCode": "0x400f4",
"EventName": "PM_RUN_PURR", "EventName": "PM_RUN_PURR",
"BriefDescription": "Run_PURR", "BriefDescription": "Run_PURR",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x10008", "EventCode": "0x10008",
"EventName": "PM_RUN_SPURR", "EventName": "PM_RUN_SPURR",
"BriefDescription": "Run SPURR", "BriefDescription": "Run SPURR",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x0", "EventCode": "0x0",
"EventName": "PM_SUSPENDED", "EventName": "PM_SUSPENDED",
"BriefDescription": "Counter OFF", "BriefDescription": "Counter OFF",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x301ea", "EventCode": "0x301ea",
"EventName": "PM_THRESH_EXC_1024", "EventName": "PM_THRESH_EXC_1024",
"BriefDescription": "Threshold counter exceeded a value of 1024", "BriefDescription": "Threshold counter exceeded a value of 1024",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x401ea", "EventCode": "0x401ea",
"EventName": "PM_THRESH_EXC_128", "EventName": "PM_THRESH_EXC_128",
"BriefDescription": "Threshold counter exceeded a value of 128", "BriefDescription": "Threshold counter exceeded a value of 128",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x401ec", "EventCode": "0x401ec",
"EventName": "PM_THRESH_EXC_2048", "EventName": "PM_THRESH_EXC_2048",
"BriefDescription": "Threshold counter exceeded a value of 2048", "BriefDescription": "Threshold counter exceeded a value of 2048",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x101e8", "EventCode": "0x101e8",
"EventName": "PM_THRESH_EXC_256", "EventName": "PM_THRESH_EXC_256",
"BriefDescription": "Threshold counter exceed a count of 256", "BriefDescription": "Threshold counter exceed a count of 256",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x201e6", "EventCode": "0x201e6",
"EventName": "PM_THRESH_EXC_32", "EventName": "PM_THRESH_EXC_32",
"BriefDescription": "Threshold counter exceeded a value of 32", "BriefDescription": "Threshold counter exceeded a value of 32",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x101e6", "EventCode": "0x101e6",
"EventName": "PM_THRESH_EXC_4096", "EventName": "PM_THRESH_EXC_4096",
"BriefDescription": "Threshold counter exceed a count of 4096", "BriefDescription": "Threshold counter exceed a count of 4096",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x201e8", "EventCode": "0x201e8",
"EventName": "PM_THRESH_EXC_512", "EventName": "PM_THRESH_EXC_512",
"BriefDescription": "Threshold counter exceeded a value of 512", "BriefDescription": "Threshold counter exceeded a value of 512",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x301e8", "EventCode": "0x301e8",
"EventName": "PM_THRESH_EXC_64", "EventName": "PM_THRESH_EXC_64",
"BriefDescription": "IFU non-branch finished", "BriefDescription": "IFU non-branch finished",
"PublicDescription": "Threshold counter exceeded a value of 64" "PublicDescription": "Threshold counter exceeded a value of 64"
}, },
{, {
"EventCode": "0x101ec", "EventCode": "0x101ec",
"EventName": "PM_THRESH_MET", "EventName": "PM_THRESH_MET",
"BriefDescription": "threshold exceeded", "BriefDescription": "threshold exceeded",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x4016e", "EventCode": "0x4016e",
"EventName": "PM_THRESH_NOT_MET", "EventName": "PM_THRESH_NOT_MET",
"BriefDescription": "Threshold counter did not meet threshold", "BriefDescription": "Threshold counter did not meet threshold",
"PublicDescription": "" "PublicDescription": ""
}, }
] ]
[ [
{, {
"EventCode": "0x4c054", "EventCode": "0x4c054",
"EventName": "PM_DERAT_MISS_16G", "EventName": "PM_DERAT_MISS_16G",
"BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16G", "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16G",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x3c054", "EventCode": "0x3c054",
"EventName": "PM_DERAT_MISS_16M", "EventName": "PM_DERAT_MISS_16M",
"BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16M", "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16M",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1c056", "EventCode": "0x1c056",
"EventName": "PM_DERAT_MISS_4K", "EventName": "PM_DERAT_MISS_4K",
"BriefDescription": "Data ERAT Miss (Data TLB Access) page size 4K", "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 4K",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2c054", "EventCode": "0x2c054",
"EventName": "PM_DERAT_MISS_64K", "EventName": "PM_DERAT_MISS_64K",
"BriefDescription": "Data ERAT Miss (Data TLB Access) page size 64K", "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 64K",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x4e048", "EventCode": "0x4e048",
"EventName": "PM_DPTEG_FROM_DL2L3_MOD", "EventName": "PM_DPTEG_FROM_DL2L3_MOD",
"BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from another chip's L2 or L3 on a different Node or Group (Distant), as this chip due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from another chip's L2 or L3 on a different Node or Group (Distant), as this chip due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x3e048", "EventCode": "0x3e048",
"EventName": "PM_DPTEG_FROM_DL2L3_SHR", "EventName": "PM_DPTEG_FROM_DL2L3_SHR",
"BriefDescription": "A Page Table Entry was loaded into the TLB with Shared (S) data from another chip's L2 or L3 on a different Node or Group (Distant), as this chip due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB with Shared (S) data from another chip's L2 or L3 on a different Node or Group (Distant), as this chip due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e042", "EventCode": "0x1e042",
"EventName": "PM_DPTEG_FROM_L2", "EventName": "PM_DPTEG_FROM_L2",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e04e", "EventCode": "0x1e04e",
"EventName": "PM_DPTEG_FROM_L2MISS", "EventName": "PM_DPTEG_FROM_L2MISS",
"BriefDescription": "A Page Table Entry was loaded into the TLB from a localtion other than the local core's L2 due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from a localtion other than the local core's L2 due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2e040", "EventCode": "0x2e040",
"EventName": "PM_DPTEG_FROM_L2_MEPF", "EventName": "PM_DPTEG_FROM_L2_MEPF",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 hit without dispatch conflicts on Mepf state. due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 hit without dispatch conflicts on Mepf state. due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e040", "EventCode": "0x1e040",
"EventName": "PM_DPTEG_FROM_L2_NO_CONFLICT", "EventName": "PM_DPTEG_FROM_L2_NO_CONFLICT",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 without conflict due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 without conflict due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x4e042", "EventCode": "0x4e042",
"EventName": "PM_DPTEG_FROM_L3", "EventName": "PM_DPTEG_FROM_L3",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x3e042", "EventCode": "0x3e042",
"EventName": "PM_DPTEG_FROM_L3_DISP_CONFLICT", "EventName": "PM_DPTEG_FROM_L3_DISP_CONFLICT",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 with dispatch conflict due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 with dispatch conflict due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2e042", "EventCode": "0x2e042",
"EventName": "PM_DPTEG_FROM_L3_MEPF", "EventName": "PM_DPTEG_FROM_L3_MEPF",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 without dispatch conflicts hit on Mepf state. due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 without dispatch conflicts hit on Mepf state. due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e044", "EventCode": "0x1e044",
"EventName": "PM_DPTEG_FROM_L3_NO_CONFLICT", "EventName": "PM_DPTEG_FROM_L3_NO_CONFLICT",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 without conflict due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 without conflict due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e04c", "EventCode": "0x1e04c",
"EventName": "PM_DPTEG_FROM_LL4", "EventName": "PM_DPTEG_FROM_LL4",
"BriefDescription": "A Page Table Entry was loaded into the TLB from the local chip's L4 cache due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from the local chip's L4 cache due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2e048", "EventCode": "0x2e048",
"EventName": "PM_DPTEG_FROM_LMEM", "EventName": "PM_DPTEG_FROM_LMEM",
"BriefDescription": "A Page Table Entry was loaded into the TLB from the local chip's Memory due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from the local chip's Memory due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2e04c", "EventCode": "0x2e04c",
"EventName": "PM_DPTEG_FROM_MEMORY", "EventName": "PM_DPTEG_FROM_MEMORY",
"BriefDescription": "A Page Table Entry was loaded into the TLB from a memory location including L4 from local remote or distant due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from a memory location including L4 from local remote or distant due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x4e04a", "EventCode": "0x4e04a",
"EventName": "PM_DPTEG_FROM_OFF_CHIP_CACHE", "EventName": "PM_DPTEG_FROM_OFF_CHIP_CACHE",
"BriefDescription": "A Page Table Entry was loaded into the TLB either shared or modified data from another core's L2/L3 on a different chip (remote or distant) due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB either shared or modified data from another core's L2/L3 on a different chip (remote or distant) due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e048", "EventCode": "0x1e048",
"EventName": "PM_DPTEG_FROM_ON_CHIP_CACHE", "EventName": "PM_DPTEG_FROM_ON_CHIP_CACHE",
"BriefDescription": "A Page Table Entry was loaded into the TLB either shared or modified data from another core's L2/L3 on the same chip due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB either shared or modified data from another core's L2/L3 on the same chip due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2e046", "EventCode": "0x2e046",
"EventName": "PM_DPTEG_FROM_RL2L3_MOD", "EventName": "PM_DPTEG_FROM_RL2L3_MOD",
"BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x1e04a", "EventCode": "0x1e04a",
"EventName": "PM_DPTEG_FROM_RL2L3_SHR", "EventName": "PM_DPTEG_FROM_RL2L3_SHR",
"BriefDescription": "A Page Table Entry was loaded into the TLB with Shared (S) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB with Shared (S) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2e04a", "EventCode": "0x2e04a",
"EventName": "PM_DPTEG_FROM_RL4", "EventName": "PM_DPTEG_FROM_RL4",
"BriefDescription": "A Page Table Entry was loaded into the TLB from another chip's L4 on the same Node or Group ( Remote) due to a data side request", "BriefDescription": "A Page Table Entry was loaded into the TLB from another chip's L4 on the same Node or Group ( Remote) due to a data side request",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x300fc", "EventCode": "0x300fc",
"EventName": "PM_DTLB_MISS", "EventName": "PM_DTLB_MISS",
"BriefDescription": "Data PTEG reload", "BriefDescription": "Data PTEG reload",
"PublicDescription": "Data PTEG Reloaded (DTLB Miss)" "PublicDescription": "Data PTEG Reloaded (DTLB Miss)"
}, },
{, {
"EventCode": "0x1c058", "EventCode": "0x1c058",
"EventName": "PM_DTLB_MISS_16G", "EventName": "PM_DTLB_MISS_16G",
"BriefDescription": "Data TLB Miss page size 16G", "BriefDescription": "Data TLB Miss page size 16G",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x4c056", "EventCode": "0x4c056",
"EventName": "PM_DTLB_MISS_16M", "EventName": "PM_DTLB_MISS_16M",
"BriefDescription": "Data TLB Miss page size 16M", "BriefDescription": "Data TLB Miss page size 16M",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x2c056", "EventCode": "0x2c056",
"EventName": "PM_DTLB_MISS_4K", "EventName": "PM_DTLB_MISS_4K",
"BriefDescription": "Data TLB Miss page size 4k", "BriefDescription": "Data TLB Miss page size 4k",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x3c056", "EventCode": "0x3c056",
"EventName": "PM_DTLB_MISS_64K", "EventName": "PM_DTLB_MISS_64K",
"BriefDescription": "Data TLB Miss page size 64K", "BriefDescription": "Data TLB Miss page size 64K",
"PublicDescription": "" "PublicDescription": ""
}, },
{, {
"EventCode": "0x200f6", "EventCode": "0x200f6",
"EventName": "PM_LSU_DERAT_MISS", "EventName": "PM_LSU_DERAT_MISS",
"BriefDescription": "DERAT Reloaded due to a DERAT miss", "BriefDescription": "DERAT Reloaded due to a DERAT miss",
"PublicDescription": "DERAT Reloaded (Miss)" "PublicDescription": "DERAT Reloaded (Miss)"
}, },
{, {
"EventCode": "0x20066", "EventCode": "0x20066",
"EventName": "PM_TLB_MISS", "EventName": "PM_TLB_MISS",
"BriefDescription": "TLB Miss (I + D)", "BriefDescription": "TLB Miss (I + D)",
"PublicDescription": "" "PublicDescription": ""
}, }
] ]
[ [
{, {
"EventCode": "0x300F4", "EventCode": "0x300F4",
"EventName": "PM_THRD_CONC_RUN_INST", "EventName": "PM_THRD_CONC_RUN_INST",
"BriefDescription": "PPC Instructions Finished by this thread when all threads in the core had the run-latch set" "BriefDescription": "PPC Instructions Finished by this thread when all threads in the core had the run-latch set"
}, },
{, {
"EventCode": "0x1E056", "EventCode": "0x1E056",
"EventName": "PM_CMPLU_STALL_FLUSH_ANY_THREAD", "EventName": "PM_CMPLU_STALL_FLUSH_ANY_THREAD",
"BriefDescription": "Cycles in which the NTC instruction is not allowed to complete because any of the 4 threads in the same core suffered a flush, which blocks completion" "BriefDescription": "Cycles in which the NTC instruction is not allowed to complete because any of the 4 threads in the same core suffered a flush, which blocks completion"
}, },
{, {
"EventCode": "0x4D016", "EventCode": "0x4D016",
"EventName": "PM_CMPLU_STALL_FXLONG", "EventName": "PM_CMPLU_STALL_FXLONG",
"BriefDescription": "Completion stall due to a long latency scalar fixed point instruction (division, square root)" "BriefDescription": "Completion stall due to a long latency scalar fixed point instruction (division, square root)"
}, },
{, {
"EventCode": "0x2D016", "EventCode": "0x2D016",
"EventName": "PM_CMPLU_STALL_FXU", "EventName": "PM_CMPLU_STALL_FXU",
"BriefDescription": "Finish stall due to a scalar fixed point or CR instruction in the execution pipeline. These instructions get routed to the ALU, ALU2, and DIV pipes" "BriefDescription": "Finish stall due to a scalar fixed point or CR instruction in the execution pipeline. These instructions get routed to the ALU, ALU2, and DIV pipes"
}, },
{, {
"EventCode": "0x4D12A", "EventCode": "0x4D12A",
"EventName": "PM_MRK_DATA_FROM_RL4_CYC", "EventName": "PM_MRK_DATA_FROM_RL4_CYC",
"BriefDescription": "Duration in cycles to reload from another chip's L4 on the same Node or Group ( Remote) due to a marked load" "BriefDescription": "Duration in cycles to reload from another chip's L4 on the same Node or Group ( Remote) due to a marked load"
}, },
{, {
"EventCode": "0x1003C", "EventCode": "0x1003C",
"EventName": "PM_CMPLU_STALL_DMISS_L2L3", "EventName": "PM_CMPLU_STALL_DMISS_L2L3",
"BriefDescription": "Completion stall by Dcache miss which resolved in L2/L3" "BriefDescription": "Completion stall by Dcache miss which resolved in L2/L3"
}, },
{, {
"EventCode": "0x4C014", "EventCode": "0x4C014",
"EventName": "PM_CMPLU_STALL_LMQ_FULL", "EventName": "PM_CMPLU_STALL_LMQ_FULL",
"BriefDescription": "Finish stall because the NTF instruction was a load that missed in the L1 and the LMQ was unable to accept this load miss request because it was full" "BriefDescription": "Finish stall because the NTF instruction was a load that missed in the L1 and the LMQ was unable to accept this load miss request because it was full"
}, },
{, {
"EventCode": "0x14048", "EventCode": "0x14048",
"EventName": "PM_INST_FROM_ON_CHIP_CACHE", "EventName": "PM_INST_FROM_ON_CHIP_CACHE",
"BriefDescription": "The processor's Instruction cache was reloaded either shared or modified data from another core's L2/L3 on the same chip due to an instruction fetch (not prefetch)" "BriefDescription": "The processor's Instruction cache was reloaded either shared or modified data from another core's L2/L3 on the same chip due to an instruction fetch (not prefetch)"
}, },
{, {
"EventCode": "0x4D014", "EventCode": "0x4D014",
"EventName": "PM_CMPLU_STALL_LOAD_FINISH", "EventName": "PM_CMPLU_STALL_LOAD_FINISH",
"BriefDescription": "Finish stall because the NTF instruction was a load instruction with all its dependencies satisfied just going through the LSU pipe to finish" "BriefDescription": "Finish stall because the NTF instruction was a load instruction with all its dependencies satisfied just going through the LSU pipe to finish"
}, },
{, {
"EventCode": "0x2404A", "EventCode": "0x2404A",
"EventName": "PM_INST_FROM_RL4", "EventName": "PM_INST_FROM_RL4",
"BriefDescription": "The processor's Instruction cache was reloaded from another chip's L4 on the same Node or Group ( Remote) due to an instruction fetch (not prefetch)" "BriefDescription": "The processor's Instruction cache was reloaded from another chip's L4 on the same Node or Group ( Remote) due to an instruction fetch (not prefetch)"
}, },
{, {
"EventCode": "0x1404A", "EventCode": "0x1404A",
"EventName": "PM_INST_FROM_RL2L3_SHR", "EventName": "PM_INST_FROM_RL2L3_SHR",
"BriefDescription": "The processor's Instruction cache was reloaded with Shared (S) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to an instruction fetch (not prefetch)" "BriefDescription": "The processor's Instruction cache was reloaded with Shared (S) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to an instruction fetch (not prefetch)"
}, },
{, {
"EventCode": "0x401EA", "EventCode": "0x401EA",
"EventName": "PM_THRESH_EXC_128", "EventName": "PM_THRESH_EXC_128",
"BriefDescription": "Threshold counter exceeded a value of 128" "BriefDescription": "Threshold counter exceeded a value of 128"
}, },
{, {
"EventCode": "0x400F6", "EventCode": "0x400F6",
"EventName": "PM_BR_MPRED_CMPL", "EventName": "PM_BR_MPRED_CMPL",
"BriefDescription": "Number of Branch Mispredicts" "BriefDescription": "Number of Branch Mispredicts"
}, },
{, {
"EventCode": "0x2F140", "EventCode": "0x2F140",
"EventName": "PM_MRK_DPTEG_FROM_L2_MEPF", "EventName": "PM_MRK_DPTEG_FROM_L2_MEPF",
"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 hit without dispatch conflicts on Mepf state. due to a marked data side request. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are included" "BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 hit without dispatch conflicts on Mepf state. due to a marked data side request. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are included"
}, },
{, {
"EventCode": "0x101E6", "EventCode": "0x101E6",
"EventName": "PM_THRESH_EXC_4096", "EventName": "PM_THRESH_EXC_4096",
"BriefDescription": "Threshold counter exceed a count of 4096" "BriefDescription": "Threshold counter exceed a count of 4096"
}, },
{, {
"EventCode": "0x3F14A", "EventCode": "0x3F14A",
"EventName": "PM_MRK_DPTEG_FROM_RMEM", "EventName": "PM_MRK_DPTEG_FROM_RMEM",
"BriefDescription": "A Page Table Entry was loaded into the TLB from another chip's memory on the same Node or Group ( Remote) due to a marked data side request. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are included" "BriefDescription": "A Page Table Entry was loaded into the TLB from another chip's memory on the same Node or Group ( Remote) due to a marked data side request. When using Radix Page Translation, this count excludes PDE reloads. Only PTE reloads are included"
}, },
{, {
"EventCode": "0x4C016", "EventCode": "0x4C016",
"EventName": "PM_CMPLU_STALL_DMISS_L2L3_CONFLICT", "EventName": "PM_CMPLU_STALL_DMISS_L2L3_CONFLICT",
"BriefDescription": "Completion stall due to cache miss that resolves in the L2 or L3 with a conflict" "BriefDescription": "Completion stall due to cache miss that resolves in the L2 or L3 with a conflict"
}, },
{, {
"EventCode": "0x2C01A", "EventCode": "0x2C01A",
"EventName": "PM_CMPLU_STALL_LHS", "EventName": "PM_CMPLU_STALL_LHS",
"BriefDescription": "Finish stall because the NTF instruction was a load that hit on an older store and it was waiting for store data" "BriefDescription": "Finish stall because the NTF instruction was a load that hit on an older store and it was waiting for store data"
}, },
{, {
"EventCode": "0x401E4", "EventCode": "0x401E4",
"EventName": "PM_MRK_DTLB_MISS", "EventName": "PM_MRK_DTLB_MISS",
"BriefDescription": "Marked dtlb miss" "BriefDescription": "Marked dtlb miss"
}, },
{, {
"EventCode": "0x24046", "EventCode": "0x24046",
"EventName": "PM_INST_FROM_RL2L3_MOD", "EventName": "PM_INST_FROM_RL2L3_MOD",
"BriefDescription": "The processor's Instruction cache was reloaded with Modified (M) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to an instruction fetch (not prefetch)" "BriefDescription": "The processor's Instruction cache was reloaded with Modified (M) data from another chip's L2 or L3 on the same Node or Group (Remote), as this chip due to an instruction fetch (not prefetch)"
}, },
{, {
"EventCode": "0x1002A", "EventCode": "0x1002A",
"EventName": "PM_CMPLU_STALL_LARX", "EventName": "PM_CMPLU_STALL_LARX",
"BriefDescription": "Finish stall because the NTF instruction was a larx waiting to be satisfied" "BriefDescription": "Finish stall because the NTF instruction was a larx waiting to be satisfied"
......
[ [
{, {
"EventCode": "0x1415A", "EventCode": "0x1415A",
"EventName": "PM_MRK_DATA_FROM_L2_DISP_CONFLICT_LDHITST_CYC", "EventName": "PM_MRK_DATA_FROM_L2_DISP_CONFLICT_LDHITST_CYC",
"BriefDescription": "Duration in cycles to reload from local core's L2 with load hit store conflict due to a marked load" "BriefDescription": "Duration in cycles to reload from local core's L2 with load hit store conflict due to a marked load"
}, },
{, {
"EventCode": "0x10058", "EventCode": "0x10058",
"EventName": "PM_MEM_LOC_THRESH_IFU", "EventName": "PM_MEM_LOC_THRESH_IFU",
"BriefDescription": "Local Memory above threshold for IFU speculation control" "BriefDescription": "Local Memory above threshold for IFU speculation control"
}, },
{, {
"EventCode": "0x2D028", "EventCode": "0x2D028",
"EventName": "PM_RADIX_PWC_L2_PDE_FROM_L2", "EventName": "PM_RADIX_PWC_L2_PDE_FROM_L2",
"BriefDescription": "A Page Directory Entry was reloaded to a level 2 page walk cache from the core's L2 data cache" "BriefDescription": "A Page Directory Entry was reloaded to a level 2 page walk cache from the core's L2 data cache"
}, },
{, {
"EventCode": "0x30012", "EventCode": "0x30012",
"EventName": "PM_FLUSH_COMPLETION", "EventName": "PM_FLUSH_COMPLETION",
"BriefDescription": "The instruction that was next to complete did not complete because it suffered a flush" "BriefDescription": "The instruction that was next to complete did not complete because it suffered a flush"
}, },
{, {
"EventCode": "0x2D154", "EventCode": "0x2D154",
"EventName": "PM_MRK_DERAT_MISS_64K", "EventName": "PM_MRK_DERAT_MISS_64K",
"BriefDescription": "Marked Data ERAT Miss (Data TLB Access) page size 64K" "BriefDescription": "Marked Data ERAT Miss (Data TLB Access) page size 64K"
}, },
{, {
"EventCode": "0x4016E", "EventCode": "0x4016E",
"EventName": "PM_THRESH_NOT_MET", "EventName": "PM_THRESH_NOT_MET",
"BriefDescription": "Threshold counter did not meet threshold" "BriefDescription": "Threshold counter did not meet threshold"
......
...@@ -637,7 +637,7 @@ class CallGraphRootItem(CallGraphLevelItemBase): ...@@ -637,7 +637,7 @@ class CallGraphRootItem(CallGraphLevelItemBase):
self.query_done = True self.query_done = True
if_has_calls = "" if_has_calls = ""
if IsSelectable(glb.db, "comms", columns = "has_calls"): if IsSelectable(glb.db, "comms", columns = "has_calls"):
if_has_calls = " WHERE has_calls = TRUE" if_has_calls = " WHERE has_calls = " + glb.dbref.TRUE
query = QSqlQuery(glb.db) query = QSqlQuery(glb.db)
QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls) QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
while query.next(): while query.next():
...@@ -918,7 +918,7 @@ class CallTreeRootItem(CallGraphLevelItemBase): ...@@ -918,7 +918,7 @@ class CallTreeRootItem(CallGraphLevelItemBase):
self.query_done = True self.query_done = True
if_has_calls = "" if_has_calls = ""
if IsSelectable(glb.db, "comms", columns = "has_calls"): if IsSelectable(glb.db, "comms", columns = "has_calls"):
if_has_calls = " WHERE has_calls = TRUE" if_has_calls = " WHERE has_calls = " + glb.dbref.TRUE
query = QSqlQuery(glb.db) query = QSqlQuery(glb.db)
QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls) QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
while query.next(): while query.next():
...@@ -1290,7 +1290,7 @@ class SwitchGraphData(GraphData): ...@@ -1290,7 +1290,7 @@ class SwitchGraphData(GraphData):
QueryExec(query, "SELECT id, c_time" QueryExec(query, "SELECT id, c_time"
" FROM comms" " FROM comms"
" WHERE c_thread_id = " + str(thread_id) + " WHERE c_thread_id = " + str(thread_id) +
" AND exec_flag = TRUE" " AND exec_flag = " + self.collection.glb.dbref.TRUE +
" AND c_time >= " + str(start_time) + " AND c_time >= " + str(start_time) +
" AND c_time <= " + str(end_time) + " AND c_time <= " + str(end_time) +
" ORDER BY c_time, id") " ORDER BY c_time, id")
...@@ -5016,6 +5016,12 @@ class DBRef(): ...@@ -5016,6 +5016,12 @@ class DBRef():
def __init__(self, is_sqlite3, dbname): def __init__(self, is_sqlite3, dbname):
self.is_sqlite3 = is_sqlite3 self.is_sqlite3 = is_sqlite3
self.dbname = dbname self.dbname = dbname
self.TRUE = "TRUE"
self.FALSE = "FALSE"
# SQLite prior to version 3.23 does not support TRUE and FALSE
if self.is_sqlite3:
self.TRUE = "1"
self.FALSE = "0"
def Open(self, connection_name): def Open(self, connection_name):
dbname = self.dbname dbname = self.dbname
......
...@@ -25,7 +25,7 @@ static int check_maps(struct map_def *merged, unsigned int size, struct map_grou ...@@ -25,7 +25,7 @@ static int check_maps(struct map_def *merged, unsigned int size, struct map_grou
TEST_ASSERT_VAL("wrong map start", map->start == merged[i].start); TEST_ASSERT_VAL("wrong map start", map->start == merged[i].start);
TEST_ASSERT_VAL("wrong map end", map->end == merged[i].end); TEST_ASSERT_VAL("wrong map end", map->end == merged[i].end);
TEST_ASSERT_VAL("wrong map name", !strcmp(map->dso->name, merged[i].name)); TEST_ASSERT_VAL("wrong map name", !strcmp(map->dso->name, merged[i].name));
TEST_ASSERT_VAL("wrong map refcnt", refcount_read(&map->refcnt) == 2); TEST_ASSERT_VAL("wrong map refcnt", refcount_read(&map->refcnt) == 1);
i++; i++;
} }
......
...@@ -1768,10 +1768,11 @@ static struct terms_test test__terms[] = { ...@@ -1768,10 +1768,11 @@ static struct terms_test test__terms[] = {
static int test_event(struct evlist_test *e) static int test_event(struct evlist_test *e)
{ {
struct parse_events_error err = { .idx = 0, }; struct parse_events_error err;
struct evlist *evlist; struct evlist *evlist;
int ret; int ret;
bzero(&err, sizeof(err));
if (e->valid && !e->valid()) { if (e->valid && !e->valid()) {
pr_debug("... SKIP"); pr_debug("... SKIP");
return 0; return 0;
......
This diff is collapsed.
...@@ -772,45 +772,16 @@ int machine__process_ksymbol(struct machine *machine __maybe_unused, ...@@ -772,45 +772,16 @@ int machine__process_ksymbol(struct machine *machine __maybe_unused,
return machine__process_ksymbol_register(machine, event, sample); return machine__process_ksymbol_register(machine, event, sample);
} }
static void dso__adjust_kmod_long_name(struct dso *dso, const char *filename) static struct map *machine__addnew_module_map(struct machine *machine, u64 start,
{
const char *dup_filename;
if (!filename || !dso || !dso->long_name)
return;
if (dso->long_name[0] != '[')
return;
if (!strchr(filename, '/'))
return;
dup_filename = strdup(filename);
if (!dup_filename)
return;
dso__set_long_name(dso, dup_filename, true);
}
struct map *machine__findnew_module_map(struct machine *machine, u64 start,
const char *filename) const char *filename)
{ {
struct map *map = NULL; struct map *map = NULL;
struct dso *dso = NULL;
struct kmod_path m; struct kmod_path m;
struct dso *dso;
if (kmod_path__parse_name(&m, filename)) if (kmod_path__parse_name(&m, filename))
return NULL; return NULL;
map = map_groups__find_by_name(&machine->kmaps, m.name);
if (map) {
/*
* If the map's dso is an offline module, give dso__load()
* a chance to find the file path of that module by fixing
* long_name.
*/
dso__adjust_kmod_long_name(map->dso, filename);
goto out;
}
dso = machine__findnew_module_dso(machine, &m, filename); dso = machine__findnew_module_dso(machine, &m, filename);
if (dso == NULL) if (dso == NULL)
goto out; goto out;
...@@ -1409,7 +1380,7 @@ static int machine__create_module(void *arg, const char *name, u64 start, ...@@ -1409,7 +1380,7 @@ static int machine__create_module(void *arg, const char *name, u64 start,
if (arch__fix_module_text_start(&start, &size, name) < 0) if (arch__fix_module_text_start(&start, &size, name) < 0)
return -1; return -1;
map = machine__findnew_module_map(machine, start, name); map = machine__addnew_module_map(machine, start, name);
if (map == NULL) if (map == NULL)
return -1; return -1;
map->end = start + size; map->end = start + size;
...@@ -1584,7 +1555,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine, ...@@ -1584,7 +1555,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine,
strlen(machine->mmap_name) - 1) == 0; strlen(machine->mmap_name) - 1) == 0;
if (event->mmap.filename[0] == '/' || if (event->mmap.filename[0] == '/' ||
(!is_kernel_mmap && event->mmap.filename[0] == '[')) { (!is_kernel_mmap && event->mmap.filename[0] == '[')) {
map = machine__findnew_module_map(machine, event->mmap.start, map = machine__addnew_module_map(machine, event->mmap.start,
event->mmap.filename); event->mmap.filename);
if (map == NULL) if (map == NULL)
goto out_problem; goto out_problem;
...@@ -2414,7 +2385,7 @@ static int thread__resolve_callchain_sample(struct thread *thread, ...@@ -2414,7 +2385,7 @@ static int thread__resolve_callchain_sample(struct thread *thread,
} }
check_calls: check_calls:
if (callchain_param.order != ORDER_CALLEE) { if (chain && callchain_param.order != ORDER_CALLEE) {
err = find_prev_cpumode(chain, thread, cursor, parent, root_al, err = find_prev_cpumode(chain, thread, cursor, parent, root_al,
&cpumode, chain->nr - first_call); &cpumode, chain->nr - first_call);
if (err) if (err)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment