xref: /freebsd/lib/libpmc/pmu-events/arch/x86/silvermont/frontend.json (revision e6bfd18d21b225af6a0ed67ceeaf1293b7b9eba5)
1[
2    {
3        "BriefDescription": "Counts the number of baclears",
4        "Counter": "0,1",
5        "EventCode": "0xE6",
6        "EventName": "BACLEARS.ALL",
7        "PublicDescription": "The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end.  The BACLEARS.ANY event counts the number of baclears for any type of branch.",
8        "SampleAfterValue": "200003",
9        "UMask": "0x1"
10    },
11    {
12        "BriefDescription": "Counts the number of JCC baclears",
13        "Counter": "0,1",
14        "EventCode": "0xE6",
15        "EventName": "BACLEARS.COND",
16        "PublicDescription": "The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end.  The BACLEARS.COND event counts the number of JCC (Jump on Condtional Code) baclears.",
17        "SampleAfterValue": "200003",
18        "UMask": "0x10"
19    },
20    {
21        "BriefDescription": "Counts the number of RETURN baclears",
22        "Counter": "0,1",
23        "EventCode": "0xE6",
24        "EventName": "BACLEARS.RETURN",
25        "PublicDescription": "The BACLEARS event counts the number of times the front end is resteered, mainly when the Branch Prediction Unit cannot provide a correct prediction and this is corrected by the Branch Address Calculator at the front end.  The BACLEARS.RETURN event counts the number of RETURN baclears.",
26        "SampleAfterValue": "200003",
27        "UMask": "0x8"
28    },
29    {
30        "BriefDescription": "Counts the number of times a decode restriction reduced the decode throughput due to wrong instruction length prediction",
31        "Counter": "0,1",
32        "EventCode": "0xE9",
33        "EventName": "DECODE_RESTRICTION.PREDECODE_WRONG",
34        "PublicDescription": "Counts the number of times a decode restriction reduced the decode throughput due to wrong instruction length prediction.",
35        "SampleAfterValue": "200003",
36        "UMask": "0x1"
37    },
38    {
39        "BriefDescription": "Instruction fetches",
40        "Counter": "0,1",
41        "EventCode": "0x80",
42        "EventName": "ICACHE.ACCESSES",
43        "PublicDescription": "This event counts all instruction fetches, not including most uncacheable\r\nfetches.",
44        "SampleAfterValue": "200003",
45        "UMask": "0x3"
46    },
47    {
48        "BriefDescription": "Instruction fetches from Icache",
49        "Counter": "0,1",
50        "EventCode": "0x80",
51        "EventName": "ICACHE.HIT",
52        "PublicDescription": "This event counts all instruction fetches from the instruction cache.",
53        "SampleAfterValue": "200003",
54        "UMask": "0x1"
55    },
56    {
57        "BriefDescription": "Icache miss",
58        "Counter": "0,1",
59        "EventCode": "0x80",
60        "EventName": "ICACHE.MISSES",
61        "PublicDescription": "This event counts all instruction fetches that miss the Instruction cache or produce memory requests. This includes uncacheable fetches. An instruction fetch miss is counted only once and not once for every cycle it is outstanding.",
62        "SampleAfterValue": "200003",
63        "UMask": "0x2"
64    },
65    {
66        "BriefDescription": "Counts the number of times entered into a ucode flow in the FEC.  Includes inserted flows due to front-end detected faults or assists.  Speculative count.",
67        "Counter": "0,1",
68        "EventCode": "0xE7",
69        "EventName": "MS_DECODED.MS_ENTRY",
70        "PublicDescription": "Counts the number of times the MSROM starts a flow of UOPS. It does not count every time a UOP is read from the microcode ROM.  The most common case that this counts is when a micro-coded instruction is encountered by the front end of the machine.  Other cases include when an instruction encounters a fault, trap, or microcode assist of any sort.  The event will count MSROM startups for UOPS that are speculative, and subsequently cleared by branch mispredict or machine clear.  Background: UOPS are produced by two mechanisms.  Either they are generated by hardware that decodes instructions into UOPS, or they are delivered by a ROM (called the MSROM) that holds UOPS associated with a specific instruction.  MSROM UOPS might also be delivered in response to some condition such as a fault or other exceptional condition.  This event is an excellent mechanism for detecting instructions that require the use of MSROM instructions.",
71        "SampleAfterValue": "200003",
72        "UMask": "0x1"
73    }
74]