blob: 2089fad85368acfd9f858f90741abad4e6413b68 [file] [log] [blame]
Damjan Marion47d165e2019-01-28 13:27:31 +01001
2#include <perfmon/perfmon_intel.h>
3
4static perfmon_intel_pmc_cpu_model_t cpu_model_table[] = {
5 {0x1C, 0x00, 0},
6 {0x26, 0x00, 0},
7 {0x27, 0x00, 0},
8 {0x36, 0x00, 0},
9 {0x35, 0x00, 0},
10
11};
12
13static perfmon_intel_pmc_event_t event_table[] = {
14 {
15 .event_code = {0x2},
16 .umask = 0x83,
17 .event_name = "store_forwards.any",
18 },
19 {
20 .event_code = {0x2},
21 .umask = 0x81,
22 .event_name = "store_forwards.good",
23 },
24 {
25 .event_code = {0x3},
26 .umask = 0x7F,
27 .event_name = "reissue.any",
28 },
29 {
30 .event_code = {0x3},
31 .umask = 0xFF,
32 .event_name = "reissue.any.ar",
33 },
34 {
35 .event_code = {0x5},
36 .umask = 0xF,
37 .event_name = "misalign_mem_ref.split",
38 },
39 {
40 .event_code = {0x5},
41 .umask = 0x9,
42 .event_name = "misalign_mem_ref.ld_split",
43 },
44 {
45 .event_code = {0x5},
46 .umask = 0xA,
47 .event_name = "misalign_mem_ref.st_split",
48 },
49 {
50 .event_code = {0x5},
51 .umask = 0x8F,
52 .event_name = "misalign_mem_ref.split.ar",
53 },
54 {
55 .event_code = {0x5},
56 .umask = 0x89,
57 .event_name = "misalign_mem_ref.ld_split.ar",
58 },
59 {
60 .event_code = {0x5},
61 .umask = 0x8A,
62 .event_name = "misalign_mem_ref.st_split.ar",
63 },
64 {
65 .event_code = {0x5},
66 .umask = 0x8C,
67 .event_name = "misalign_mem_ref.rmw_split",
68 },
69 {
70 .event_code = {0x5},
71 .umask = 0x97,
72 .event_name = "misalign_mem_ref.bubble",
73 },
74 {
75 .event_code = {0x5},
76 .umask = 0x91,
77 .event_name = "misalign_mem_ref.ld_bubble",
78 },
79 {
80 .event_code = {0x5},
81 .umask = 0x92,
82 .event_name = "misalign_mem_ref.st_bubble",
83 },
84 {
85 .event_code = {0x5},
86 .umask = 0x94,
87 .event_name = "misalign_mem_ref.rmw_bubble",
88 },
89 {
90 .event_code = {0x6},
91 .umask = 0x80,
92 .event_name = "segment_reg_loads.any",
93 },
94 {
95 .event_code = {0x7},
96 .umask = 0x81,
97 .event_name = "prefetch.prefetcht0",
98 },
99 {
100 .event_code = {0x7},
101 .umask = 0x82,
102 .event_name = "prefetch.prefetcht1",
103 },
104 {
105 .event_code = {0x7},
106 .umask = 0x84,
107 .event_name = "prefetch.prefetcht2",
108 },
109 {
110 .event_code = {0x7},
111 .umask = 0x86,
112 .event_name = "prefetch.sw_l2",
113 },
114 {
115 .event_code = {0x7},
116 .umask = 0x88,
117 .event_name = "prefetch.prefetchnta",
118 },
119 {
120 .event_code = {0x7},
121 .umask = 0x10,
122 .event_name = "prefetch.hw_prefetch",
123 },
124 {
125 .event_code = {0x7},
126 .umask = 0xF,
127 .event_name = "prefetch.software_prefetch",
128 },
129 {
130 .event_code = {0x7},
131 .umask = 0x8F,
132 .event_name = "prefetch.software_prefetch.ar",
133 },
134 {
135 .event_code = {0x8},
136 .umask = 0x7,
137 .event_name = "data_tlb_misses.dtlb_miss",
138 },
139 {
140 .event_code = {0x8},
141 .umask = 0x5,
142 .event_name = "data_tlb_misses.dtlb_miss_ld",
143 },
144 {
145 .event_code = {0x8},
146 .umask = 0x9,
147 .event_name = "data_tlb_misses.l0_dtlb_miss_ld",
148 },
149 {
150 .event_code = {0x8},
151 .umask = 0x6,
152 .event_name = "data_tlb_misses.dtlb_miss_st",
153 },
154 {
155 .event_code = {0x8},
156 .umask = 0xA,
157 .event_name = "data_tlb_misses.l0_dtlb_miss_st",
158 },
159 {
160 .event_code = {0x9},
161 .umask = 0x20,
162 .event_name = "dispatch_blocked.any",
163 },
164 {
165 .event_code = {0xC},
166 .umask = 0x3,
167 .event_name = "page_walks.walks",
168 },
169 {
170 .event_code = {0xC},
171 .umask = 0x3,
172 .event_name = "page_walks.cycles",
173 },
174 {
175 .event_code = {0xC},
176 .umask = 0x1,
177 .event_name = "page_walks.d_side_walks",
178 },
179 {
180 .event_code = {0xC},
181 .umask = 0x1,
182 .event_name = "page_walks.d_side_cycles",
183 },
184 {
185 .event_code = {0xC},
186 .umask = 0x2,
187 .event_name = "page_walks.i_side_walks",
188 },
189 {
190 .event_code = {0xC},
191 .umask = 0x2,
192 .event_name = "page_walks.i_side_cycles",
193 },
194 {
195 .event_code = {0x10},
196 .umask = 0x1,
197 .event_name = "x87_comp_ops_exe.any.s",
198 },
199 {
200 .event_code = {0x10},
201 .umask = 0x81,
202 .event_name = "x87_comp_ops_exe.any.ar",
203 },
204 {
205 .event_code = {0x10},
206 .umask = 0x2,
207 .event_name = "x87_comp_ops_exe.fxch.s",
208 },
209 {
210 .event_code = {0x10},
211 .umask = 0x82,
212 .event_name = "x87_comp_ops_exe.fxch.ar",
213 },
214 {
215 .event_code = {0x11},
216 .umask = 0x1,
217 .event_name = "fp_assist.s",
218 },
219 {
220 .event_code = {0x11},
221 .umask = 0x81,
222 .event_name = "fp_assist.ar",
223 },
224 {
225 .event_code = {0x12},
226 .umask = 0x1,
227 .event_name = "mul.s",
228 },
229 {
230 .event_code = {0x12},
231 .umask = 0x81,
232 .event_name = "mul.ar",
233 },
234 {
235 .event_code = {0x13},
236 .umask = 0x1,
237 .event_name = "div.s",
238 },
239 {
240 .event_code = {0x13},
241 .umask = 0x81,
242 .event_name = "div.ar",
243 },
244 {
245 .event_code = {0x14},
246 .umask = 0x1,
247 .event_name = "cycles_div_busy",
248 },
249 {
250 .event_code = {0x21},
251 .umask = 0x40,
252 .event_name = "l2_ads.self",
253 },
254 {
255 .event_code = {0x22},
256 .umask = 0x40,
257 .event_name = "l2_dbus_busy.self",
258 },
259 {
260 .event_code = {0x23},
261 .umask = 0x40,
262 .event_name = "l2_dbus_busy_rd.self",
263 },
264 {
265 .event_code = {0x24},
266 .umask = 0x70,
267 .event_name = "l2_lines_in.self.any",
268 },
269 {
270 .event_code = {0x24},
271 .umask = 0x40,
272 .event_name = "l2_lines_in.self.demand",
273 },
274 {
275 .event_code = {0x24},
276 .umask = 0x50,
277 .event_name = "l2_lines_in.self.prefetch",
278 },
279 {
280 .event_code = {0x25},
281 .umask = 0x40,
282 .event_name = "l2_m_lines_in.self",
283 },
284 {
285 .event_code = {0x26},
286 .umask = 0x70,
287 .event_name = "l2_lines_out.self.any",
288 },
289 {
290 .event_code = {0x26},
291 .umask = 0x40,
292 .event_name = "l2_lines_out.self.demand",
293 },
294 {
295 .event_code = {0x26},
296 .umask = 0x50,
297 .event_name = "l2_lines_out.self.prefetch",
298 },
299 {
300 .event_code = {0x27},
301 .umask = 0x70,
302 .event_name = "l2_m_lines_out.self.any",
303 },
304 {
305 .event_code = {0x27},
306 .umask = 0x40,
307 .event_name = "l2_m_lines_out.self.demand",
308 },
309 {
310 .event_code = {0x27},
311 .umask = 0x50,
312 .event_name = "l2_m_lines_out.self.prefetch",
313 },
314 {
315 .event_code = {0x28},
316 .umask = 0x44,
317 .event_name = "l2_ifetch.self.e_state",
318 },
319 {
320 .event_code = {0x28},
321 .umask = 0x41,
322 .event_name = "l2_ifetch.self.i_state",
323 },
324 {
325 .event_code = {0x28},
326 .umask = 0x48,
327 .event_name = "l2_ifetch.self.m_state",
328 },
329 {
330 .event_code = {0x28},
331 .umask = 0x42,
332 .event_name = "l2_ifetch.self.s_state",
333 },
334 {
335 .event_code = {0x28},
336 .umask = 0x4F,
337 .event_name = "l2_ifetch.self.mesi",
338 },
339 {
340 .event_code = {0x29},
341 .umask = 0x74,
342 .event_name = "l2_ld.self.any.e_state",
343 },
344 {
345 .event_code = {0x29},
346 .umask = 0x71,
347 .event_name = "l2_ld.self.any.i_state",
348 },
349 {
350 .event_code = {0x29},
351 .umask = 0x78,
352 .event_name = "l2_ld.self.any.m_state",
353 },
354 {
355 .event_code = {0x29},
356 .umask = 0x72,
357 .event_name = "l2_ld.self.any.s_state",
358 },
359 {
360 .event_code = {0x29},
361 .umask = 0x7F,
362 .event_name = "l2_ld.self.any.mesi",
363 },
364 {
365 .event_code = {0x29},
366 .umask = 0x44,
367 .event_name = "l2_ld.self.demand.e_state",
368 },
369 {
370 .event_code = {0x29},
371 .umask = 0x41,
372 .event_name = "l2_ld.self.demand.i_state",
373 },
374 {
375 .event_code = {0x29},
376 .umask = 0x48,
377 .event_name = "l2_ld.self.demand.m_state",
378 },
379 {
380 .event_code = {0x29},
381 .umask = 0x42,
382 .event_name = "l2_ld.self.demand.s_state",
383 },
384 {
385 .event_code = {0x29},
386 .umask = 0x4F,
387 .event_name = "l2_ld.self.demand.mesi",
388 },
389 {
390 .event_code = {0x29},
391 .umask = 0x54,
392 .event_name = "l2_ld.self.prefetch.e_state",
393 },
394 {
395 .event_code = {0x29},
396 .umask = 0x51,
397 .event_name = "l2_ld.self.prefetch.i_state",
398 },
399 {
400 .event_code = {0x29},
401 .umask = 0x58,
402 .event_name = "l2_ld.self.prefetch.m_state",
403 },
404 {
405 .event_code = {0x29},
406 .umask = 0x52,
407 .event_name = "l2_ld.self.prefetch.s_state",
408 },
409 {
410 .event_code = {0x29},
411 .umask = 0x5F,
412 .event_name = "l2_ld.self.prefetch.mesi",
413 },
414 {
415 .event_code = {0x2A},
416 .umask = 0x44,
417 .event_name = "l2_st.self.e_state",
418 },
419 {
420 .event_code = {0x2A},
421 .umask = 0x41,
422 .event_name = "l2_st.self.i_state",
423 },
424 {
425 .event_code = {0x2A},
426 .umask = 0x48,
427 .event_name = "l2_st.self.m_state",
428 },
429 {
430 .event_code = {0x2A},
431 .umask = 0x42,
432 .event_name = "l2_st.self.s_state",
433 },
434 {
435 .event_code = {0x2A},
436 .umask = 0x4F,
437 .event_name = "l2_st.self.mesi",
438 },
439 {
440 .event_code = {0x2B},
441 .umask = 0x44,
442 .event_name = "l2_lock.self.e_state",
443 },
444 {
445 .event_code = {0x2B},
446 .umask = 0x41,
447 .event_name = "l2_lock.self.i_state",
448 },
449 {
450 .event_code = {0x2B},
451 .umask = 0x48,
452 .event_name = "l2_lock.self.m_state",
453 },
454 {
455 .event_code = {0x2B},
456 .umask = 0x42,
457 .event_name = "l2_lock.self.s_state",
458 },
459 {
460 .event_code = {0x2B},
461 .umask = 0x4F,
462 .event_name = "l2_lock.self.mesi",
463 },
464 {
465 .event_code = {0x2C},
466 .umask = 0x44,
467 .event_name = "l2_data_rqsts.self.e_state",
468 },
469 {
470 .event_code = {0x2C},
471 .umask = 0x41,
472 .event_name = "l2_data_rqsts.self.i_state",
473 },
474 {
475 .event_code = {0x2C},
476 .umask = 0x48,
477 .event_name = "l2_data_rqsts.self.m_state",
478 },
479 {
480 .event_code = {0x2C},
481 .umask = 0x42,
482 .event_name = "l2_data_rqsts.self.s_state",
483 },
484 {
485 .event_code = {0x2C},
486 .umask = 0x4F,
487 .event_name = "l2_data_rqsts.self.mesi",
488 },
489 {
490 .event_code = {0x2D},
491 .umask = 0x44,
492 .event_name = "l2_ld_ifetch.self.e_state",
493 },
494 {
495 .event_code = {0x2D},
496 .umask = 0x41,
497 .event_name = "l2_ld_ifetch.self.i_state",
498 },
499 {
500 .event_code = {0x2D},
501 .umask = 0x48,
502 .event_name = "l2_ld_ifetch.self.m_state",
503 },
504 {
505 .event_code = {0x2D},
506 .umask = 0x42,
507 .event_name = "l2_ld_ifetch.self.s_state",
508 },
509 {
510 .event_code = {0x2D},
511 .umask = 0x4F,
512 .event_name = "l2_ld_ifetch.self.mesi",
513 },
514 {
515 .event_code = {0x2E},
516 .umask = 0x74,
517 .event_name = "l2_rqsts.self.any.e_state",
518 },
519 {
520 .event_code = {0x2E},
521 .umask = 0x71,
522 .event_name = "l2_rqsts.self.any.i_state",
523 },
524 {
525 .event_code = {0x2E},
526 .umask = 0x78,
527 .event_name = "l2_rqsts.self.any.m_state",
528 },
529 {
530 .event_code = {0x2E},
531 .umask = 0x72,
532 .event_name = "l2_rqsts.self.any.s_state",
533 },
534 {
535 .event_code = {0x2E},
536 .umask = 0x7F,
537 .event_name = "l2_rqsts.self.any.mesi",
538 },
539 {
540 .event_code = {0x2E},
541 .umask = 0x44,
542 .event_name = "l2_rqsts.self.demand.e_state",
543 },
544 {
545 .event_code = {0x2E},
546 .umask = 0x48,
547 .event_name = "l2_rqsts.self.demand.m_state",
548 },
549 {
550 .event_code = {0x2E},
551 .umask = 0x42,
552 .event_name = "l2_rqsts.self.demand.s_state",
553 },
554 {
555 .event_code = {0x2E},
556 .umask = 0x54,
557 .event_name = "l2_rqsts.self.prefetch.e_state",
558 },
559 {
560 .event_code = {0x2E},
561 .umask = 0x51,
562 .event_name = "l2_rqsts.self.prefetch.i_state",
563 },
564 {
565 .event_code = {0x2E},
566 .umask = 0x58,
567 .event_name = "l2_rqsts.self.prefetch.m_state",
568 },
569 {
570 .event_code = {0x2E},
571 .umask = 0x52,
572 .event_name = "l2_rqsts.self.prefetch.s_state",
573 },
574 {
575 .event_code = {0x2E},
576 .umask = 0x5F,
577 .event_name = "l2_rqsts.self.prefetch.mesi",
578 },
579 {
580 .event_code = {0x2E},
581 .umask = 0x41,
582 .event_name = "l2_rqsts.self.demand.i_state",
583 },
584 {
585 .event_code = {0x2E},
586 .umask = 0x4F,
587 .event_name = "l2_rqsts.self.demand.mesi",
588 },
589 {
590 .event_code = {0x30},
591 .umask = 0x74,
592 .event_name = "l2_reject_busq.self.any.e_state",
593 },
594 {
595 .event_code = {0x30},
596 .umask = 0x71,
597 .event_name = "l2_reject_busq.self.any.i_state",
598 },
599 {
600 .event_code = {0x30},
601 .umask = 0x78,
602 .event_name = "l2_reject_busq.self.any.m_state",
603 },
604 {
605 .event_code = {0x30},
606 .umask = 0x72,
607 .event_name = "l2_reject_busq.self.any.s_state",
608 },
609 {
610 .event_code = {0x30},
611 .umask = 0x7F,
612 .event_name = "l2_reject_busq.self.any.mesi",
613 },
614 {
615 .event_code = {0x30},
616 .umask = 0x44,
617 .event_name = "l2_reject_busq.self.demand.e_state",
618 },
619 {
620 .event_code = {0x30},
621 .umask = 0x41,
622 .event_name = "l2_reject_busq.self.demand.i_state",
623 },
624 {
625 .event_code = {0x30},
626 .umask = 0x48,
627 .event_name = "l2_reject_busq.self.demand.m_state",
628 },
629 {
630 .event_code = {0x30},
631 .umask = 0x42,
632 .event_name = "l2_reject_busq.self.demand.s_state",
633 },
634 {
635 .event_code = {0x30},
636 .umask = 0x4F,
637 .event_name = "l2_reject_busq.self.demand.mesi",
638 },
639 {
640 .event_code = {0x30},
641 .umask = 0x54,
642 .event_name = "l2_reject_busq.self.prefetch.e_state",
643 },
644 {
645 .event_code = {0x30},
646 .umask = 0x51,
647 .event_name = "l2_reject_busq.self.prefetch.i_state",
648 },
649 {
650 .event_code = {0x30},
651 .umask = 0x58,
652 .event_name = "l2_reject_busq.self.prefetch.m_state",
653 },
654 {
655 .event_code = {0x30},
656 .umask = 0x52,
657 .event_name = "l2_reject_busq.self.prefetch.s_state",
658 },
659 {
660 .event_code = {0x30},
661 .umask = 0x5F,
662 .event_name = "l2_reject_busq.self.prefetch.mesi",
663 },
664 {
665 .event_code = {0x32},
666 .umask = 0x40,
667 .event_name = "l2_no_req.self",
668 },
669 {
670 .event_code = {0x3A},
671 .umask = 0x0,
672 .event_name = "eist_trans",
673 },
674 {
675 .event_code = {0x3B},
676 .umask = 0xC0,
677 .event_name = "thermal_trip",
678 },
679 {
680 .event_code = {0x3C},
681 .umask = 0x0,
682 .event_name = "cpu_clk_unhalted.core_p",
683 },
684 {
685 .event_code = {0x3C},
686 .umask = 0x1,
687 .event_name = "cpu_clk_unhalted.bus",
688 },
689 {
690 .event_code = {0xA},
691 .umask = 0x0,
692 .event_name = "cpu_clk_unhalted.core",
693 },
694 {
695 .event_code = {0xA},
696 .umask = 0x0,
697 .event_name = "cpu_clk_unhalted.ref",
698 },
699 {
700 .event_code = {0x40},
701 .umask = 0xA1,
702 .event_name = "l1d_cache.ld",
703 },
704 {
705 .event_code = {0x40},
706 .umask = 0xA2,
707 .event_name = "l1d_cache.st",
708 },
709 {
710 .event_code = {0x40},
711 .umask = 0x83,
712 .event_name = "l1d_cache.all_ref",
713 },
714 {
715 .event_code = {0x40},
716 .umask = 0xA3,
717 .event_name = "l1d_cache.all_cache_ref",
718 },
719 {
720 .event_code = {0x40},
721 .umask = 0x8,
722 .event_name = "l1d_cache.repl",
723 },
724 {
725 .event_code = {0x40},
726 .umask = 0x48,
727 .event_name = "l1d_cache.replm",
728 },
729 {
730 .event_code = {0x40},
731 .umask = 0x10,
732 .event_name = "l1d_cache.evict",
733 },
734 {
735 .event_code = {0x60},
736 .umask = 0xE0,
737 .event_name = "bus_request_outstanding.all_agents",
738 },
739 {
740 .event_code = {0x60},
741 .umask = 0x40,
742 .event_name = "bus_request_outstanding.self",
743 },
744 {
745 .event_code = {0x61},
746 .umask = 0x20,
747 .event_name = "bus_bnr_drv.all_agents",
748 },
749 {
750 .event_code = {0x61},
751 .umask = 0x0,
752 .event_name = "bus_bnr_drv.this_agent",
753 },
754 {
755 .event_code = {0x62},
756 .umask = 0x20,
757 .event_name = "bus_drdy_clocks.all_agents",
758 },
759 {
760 .event_code = {0x62},
761 .umask = 0x0,
762 .event_name = "bus_drdy_clocks.this_agent",
763 },
764 {
765 .event_code = {0x63},
766 .umask = 0xE0,
767 .event_name = "bus_lock_clocks.all_agents",
768 },
769 {
770 .event_code = {0x63},
771 .umask = 0x40,
772 .event_name = "bus_lock_clocks.self",
773 },
774 {
775 .event_code = {0x64},
776 .umask = 0x40,
777 .event_name = "bus_data_rcv.self",
778 },
779 {
780 .event_code = {0x65},
781 .umask = 0xE0,
782 .event_name = "bus_trans_brd.all_agents",
783 },
784 {
785 .event_code = {0x65},
786 .umask = 0x40,
787 .event_name = "bus_trans_brd.self",
788 },
789 {
790 .event_code = {0x66},
791 .umask = 0xE0,
792 .event_name = "bus_trans_rfo.all_agents",
793 },
794 {
795 .event_code = {0x66},
796 .umask = 0x40,
797 .event_name = "bus_trans_rfo.self",
798 },
799 {
800 .event_code = {0x67},
801 .umask = 0xE0,
802 .event_name = "bus_trans_wb.all_agents",
803 },
804 {
805 .event_code = {0x67},
806 .umask = 0x40,
807 .event_name = "bus_trans_wb.self",
808 },
809 {
810 .event_code = {0x68},
811 .umask = 0xE0,
812 .event_name = "bus_trans_ifetch.all_agents",
813 },
814 {
815 .event_code = {0x68},
816 .umask = 0x40,
817 .event_name = "bus_trans_ifetch.self",
818 },
819 {
820 .event_code = {0x69},
821 .umask = 0xE0,
822 .event_name = "bus_trans_inval.all_agents",
823 },
824 {
825 .event_code = {0x69},
826 .umask = 0x40,
827 .event_name = "bus_trans_inval.self",
828 },
829 {
830 .event_code = {0x6A},
831 .umask = 0xE0,
832 .event_name = "bus_trans_pwr.all_agents",
833 },
834 {
835 .event_code = {0x6A},
836 .umask = 0x40,
837 .event_name = "bus_trans_pwr.self",
838 },
839 {
840 .event_code = {0x6B},
841 .umask = 0xE0,
842 .event_name = "bus_trans_p.all_agents",
843 },
844 {
845 .event_code = {0x6B},
846 .umask = 0x40,
847 .event_name = "bus_trans_p.self",
848 },
849 {
850 .event_code = {0x6C},
851 .umask = 0xE0,
852 .event_name = "bus_trans_io.all_agents",
853 },
854 {
855 .event_code = {0x6C},
856 .umask = 0x40,
857 .event_name = "bus_trans_io.self",
858 },
859 {
860 .event_code = {0x6D},
861 .umask = 0xE0,
862 .event_name = "bus_trans_def.all_agents",
863 },
864 {
865 .event_code = {0x6D},
866 .umask = 0x40,
867 .event_name = "bus_trans_def.self",
868 },
869 {
870 .event_code = {0x6E},
871 .umask = 0xE0,
872 .event_name = "bus_trans_burst.all_agents",
873 },
874 {
875 .event_code = {0x6E},
876 .umask = 0x40,
877 .event_name = "bus_trans_burst.self",
878 },
879 {
880 .event_code = {0x6F},
881 .umask = 0xE0,
882 .event_name = "bus_trans_mem.all_agents",
883 },
884 {
885 .event_code = {0x6F},
886 .umask = 0x40,
887 .event_name = "bus_trans_mem.self",
888 },
889 {
890 .event_code = {0x70},
891 .umask = 0xE0,
892 .event_name = "bus_trans_any.all_agents",
893 },
894 {
895 .event_code = {0x70},
896 .umask = 0x40,
897 .event_name = "bus_trans_any.self",
898 },
899 {
900 .event_code = {0x77},
901 .umask = 0xB,
902 .event_name = "ext_snoop.this_agent.any",
903 },
904 {
905 .event_code = {0x77},
906 .umask = 0x1,
907 .event_name = "ext_snoop.this_agent.clean",
908 },
909 {
910 .event_code = {0x77},
911 .umask = 0x2,
912 .event_name = "ext_snoop.this_agent.hit",
913 },
914 {
915 .event_code = {0x77},
916 .umask = 0x8,
917 .event_name = "ext_snoop.this_agent.hitm",
918 },
919 {
920 .event_code = {0x77},
921 .umask = 0x2B,
922 .event_name = "ext_snoop.all_agents.any",
923 },
924 {
925 .event_code = {0x77},
926 .umask = 0x21,
927 .event_name = "ext_snoop.all_agents.clean",
928 },
929 {
930 .event_code = {0x77},
931 .umask = 0x22,
932 .event_name = "ext_snoop.all_agents.hit",
933 },
934 {
935 .event_code = {0x77},
936 .umask = 0x28,
937 .event_name = "ext_snoop.all_agents.hitm",
938 },
939 {
940 .event_code = {0x7A},
941 .umask = 0x20,
942 .event_name = "bus_hit_drv.all_agents",
943 },
944 {
945 .event_code = {0x7A},
946 .umask = 0x0,
947 .event_name = "bus_hit_drv.this_agent",
948 },
949 {
950 .event_code = {0x7B},
951 .umask = 0x20,
952 .event_name = "bus_hitm_drv.all_agents",
953 },
954 {
955 .event_code = {0x7B},
956 .umask = 0x0,
957 .event_name = "bus_hitm_drv.this_agent",
958 },
959 {
960 .event_code = {0x7D},
961 .umask = 0x40,
962 .event_name = "busq_empty.self",
963 },
964 {
965 .event_code = {0x7E},
966 .umask = 0xE0,
967 .event_name = "snoop_stall_drv.all_agents",
968 },
969 {
970 .event_code = {0x7E},
971 .umask = 0x40,
972 .event_name = "snoop_stall_drv.self",
973 },
974 {
975 .event_code = {0x7F},
976 .umask = 0x40,
977 .event_name = "bus_io_wait.self",
978 },
979 {
980 .event_code = {0x80},
981 .umask = 0x3,
982 .event_name = "icache.accesses",
983 },
984 {
985 .event_code = {0x80},
986 .umask = 0x1,
987 .event_name = "icache.hit",
988 },
989 {
990 .event_code = {0x80},
991 .umask = 0x2,
992 .event_name = "icache.misses",
993 },
994 {
995 .event_code = {0x82},
996 .umask = 0x1,
997 .event_name = "itlb.hit",
998 },
999 {
1000 .event_code = {0x82},
1001 .umask = 0x4,
1002 .event_name = "itlb.flush",
1003 },
1004 {
1005 .event_code = {0x82},
1006 .umask = 0x2,
1007 .event_name = "itlb.misses",
1008 },
1009 {
1010 .event_code = {0x86},
1011 .umask = 0x1,
1012 .event_name = "cycles_icache_mem_stalled.icache_mem_stalled",
1013 },
1014 {
1015 .event_code = {0x87},
1016 .umask = 0x1,
1017 .event_name = "decode_stall.pfb_empty",
1018 },
1019 {
1020 .event_code = {0x87},
1021 .umask = 0x2,
1022 .event_name = "decode_stall.iq_full",
1023 },
1024 {
1025 .event_code = {0x88},
1026 .umask = 0x1,
1027 .event_name = "br_inst_type_retired.cond",
1028 },
1029 {
1030 .event_code = {0x88},
1031 .umask = 0x2,
1032 .event_name = "br_inst_type_retired.uncond",
1033 },
1034 {
1035 .event_code = {0x88},
1036 .umask = 0x4,
1037 .event_name = "br_inst_type_retired.ind",
1038 },
1039 {
1040 .event_code = {0x88},
1041 .umask = 0x8,
1042 .event_name = "br_inst_type_retired.ret",
1043 },
1044 {
1045 .event_code = {0x88},
1046 .umask = 0x10,
1047 .event_name = "br_inst_type_retired.dir_call",
1048 },
1049 {
1050 .event_code = {0x88},
1051 .umask = 0x20,
1052 .event_name = "br_inst_type_retired.ind_call",
1053 },
1054 {
1055 .event_code = {0x88},
1056 .umask = 0x41,
1057 .event_name = "br_inst_type_retired.cond_taken",
1058 },
1059 {
1060 .event_code = {0x89},
1061 .umask = 0x1,
1062 .event_name = "br_missp_type_retired.cond",
1063 },
1064 {
1065 .event_code = {0x89},
1066 .umask = 0x2,
1067 .event_name = "br_missp_type_retired.ind",
1068 },
1069 {
1070 .event_code = {0x89},
1071 .umask = 0x4,
1072 .event_name = "br_missp_type_retired.return",
1073 },
1074 {
1075 .event_code = {0x89},
1076 .umask = 0x8,
1077 .event_name = "br_missp_type_retired.ind_call",
1078 },
1079 {
1080 .event_code = {0x89},
1081 .umask = 0x11,
1082 .event_name = "br_missp_type_retired.cond_taken",
1083 },
1084 {
1085 .event_code = {0xAA},
1086 .umask = 0x1,
1087 .event_name = "macro_insts.non_cisc_decoded",
1088 },
1089 {
1090 .event_code = {0xAA},
1091 .umask = 0x2,
1092 .event_name = "macro_insts.cisc_decoded",
1093 },
1094 {
1095 .event_code = {0xAA},
1096 .umask = 0x3,
1097 .event_name = "macro_insts.all_decoded",
1098 },
1099 {
1100 .event_code = {0xB0},
1101 .umask = 0x0,
1102 .event_name = "simd_uops_exec.s",
1103 },
1104 {
1105 .event_code = {0xB0},
1106 .umask = 0x80,
1107 .event_name = "simd_uops_exec.ar",
1108 },
1109 {
1110 .event_code = {0xB1},
1111 .umask = 0x0,
1112 .event_name = "simd_sat_uop_exec.s",
1113 },
1114 {
1115 .event_code = {0xB1},
1116 .umask = 0x80,
1117 .event_name = "simd_sat_uop_exec.ar",
1118 },
1119 {
1120 .event_code = {0xB3},
1121 .umask = 0x1,
1122 .event_name = "simd_uop_type_exec.mul.s",
1123 },
1124 {
1125 .event_code = {0xB3},
1126 .umask = 0x81,
1127 .event_name = "simd_uop_type_exec.mul.ar",
1128 },
1129 {
1130 .event_code = {0xB3},
1131 .umask = 0x2,
1132 .event_name = "simd_uop_type_exec.shift.s",
1133 },
1134 {
1135 .event_code = {0xB3},
1136 .umask = 0x82,
1137 .event_name = "simd_uop_type_exec.shift.ar",
1138 },
1139 {
1140 .event_code = {0xB3},
1141 .umask = 0x4,
1142 .event_name = "simd_uop_type_exec.pack.s",
1143 },
1144 {
1145 .event_code = {0xB3},
1146 .umask = 0x84,
1147 .event_name = "simd_uop_type_exec.pack.ar",
1148 },
1149 {
1150 .event_code = {0xB3},
1151 .umask = 0x8,
1152 .event_name = "simd_uop_type_exec.unpack.s",
1153 },
1154 {
1155 .event_code = {0xB3},
1156 .umask = 0x88,
1157 .event_name = "simd_uop_type_exec.unpack.ar",
1158 },
1159 {
1160 .event_code = {0xB3},
1161 .umask = 0x10,
1162 .event_name = "simd_uop_type_exec.logical.s",
1163 },
1164 {
1165 .event_code = {0xB3},
1166 .umask = 0x90,
1167 .event_name = "simd_uop_type_exec.logical.ar",
1168 },
1169 {
1170 .event_code = {0xB3},
1171 .umask = 0x20,
1172 .event_name = "simd_uop_type_exec.arithmetic.s",
1173 },
1174 {
1175 .event_code = {0xB3},
1176 .umask = 0xA0,
1177 .event_name = "simd_uop_type_exec.arithmetic.ar",
1178 },
1179 {
1180 .event_code = {0xC0},
1181 .umask = 0x0,
1182 .event_name = "inst_retired.any_p",
1183 },
1184 {
1185 .event_code = {0xA},
1186 .umask = 0x0,
1187 .event_name = "inst_retired.any",
1188 },
1189 {
1190 .event_code = {0xC2},
1191 .umask = 0x10,
1192 .event_name = "uops_retired.any",
1193 },
1194 {
1195 .event_code = {0xC2},
1196 .umask = 0x10,
1197 .event_name = "uops_retired.stalled_cycles",
1198 },
1199 {
1200 .event_code = {0xC2},
1201 .umask = 0x10,
1202 .event_name = "uops_retired.stalls",
1203 },
1204 {
1205 .event_code = {0xA9},
1206 .umask = 0x1,
1207 .event_name = "uops.ms_cycles",
1208 },
1209 {
1210 .event_code = {0xC3},
1211 .umask = 0x1,
1212 .event_name = "machine_clears.smc",
1213 },
1214 {
1215 .event_code = {0xC4},
1216 .umask = 0x0,
1217 .event_name = "br_inst_retired.any",
1218 },
1219 {
1220 .event_code = {0xC4},
1221 .umask = 0x1,
1222 .event_name = "br_inst_retired.pred_not_taken",
1223 },
1224 {
1225 .event_code = {0xC4},
1226 .umask = 0x2,
1227 .event_name = "br_inst_retired.mispred_not_taken",
1228 },
1229 {
1230 .event_code = {0xC4},
1231 .umask = 0x4,
1232 .event_name = "br_inst_retired.pred_taken",
1233 },
1234 {
1235 .event_code = {0xC4},
1236 .umask = 0x8,
1237 .event_name = "br_inst_retired.mispred_taken",
1238 },
1239 {
1240 .event_code = {0xC4},
1241 .umask = 0xC,
1242 .event_name = "br_inst_retired.taken",
1243 },
1244 {
1245 .event_code = {0xC4},
1246 .umask = 0xF,
1247 .event_name = "br_inst_retired.any1",
1248 },
1249 {
1250 .event_code = {0xC5},
1251 .umask = 0x0,
1252 .event_name = "br_inst_retired.mispred",
1253 },
1254 {
1255 .event_code = {0xC6},
1256 .umask = 0x1,
1257 .event_name = "cycles_int_masked.cycles_int_masked",
1258 },
1259 {
1260 .event_code = {0xC6},
1261 .umask = 0x2,
1262 .event_name = "cycles_int_masked.cycles_int_pending_and_masked",
1263 },
1264 {
1265 .event_code = {0xC7},
1266 .umask = 0x1,
1267 .event_name = "simd_inst_retired.packed_single",
1268 },
1269 {
1270 .event_code = {0xC7},
1271 .umask = 0x2,
1272 .event_name = "simd_inst_retired.scalar_single",
1273 },
1274 {
1275 .event_code = {0xC7},
1276 .umask = 0x8,
1277 .event_name = "simd_inst_retired.scalar_double",
1278 },
1279 {
1280 .event_code = {0xC7},
1281 .umask = 0x10,
1282 .event_name = "simd_inst_retired.vector",
1283 },
1284 {
1285 .event_code = {0xC8},
1286 .umask = 0x0,
1287 .event_name = "hw_int_rcv",
1288 },
1289 {
1290 .event_code = {0xCA},
1291 .umask = 0x1,
1292 .event_name = "simd_comp_inst_retired.packed_single",
1293 },
1294 {
1295 .event_code = {0xCA},
1296 .umask = 0x2,
1297 .event_name = "simd_comp_inst_retired.scalar_single",
1298 },
1299 {
1300 .event_code = {0xCA},
1301 .umask = 0x8,
1302 .event_name = "simd_comp_inst_retired.scalar_double",
1303 },
1304 {
1305 .event_code = {0xCB},
1306 .umask = 0x1,
1307 .event_name = "mem_load_retired.l2_hit",
1308 },
1309 {
1310 .event_code = {0xCB},
1311 .umask = 0x2,
1312 .event_name = "mem_load_retired.l2_miss",
1313 },
1314 {
1315 .event_code = {0xCB},
1316 .umask = 0x4,
1317 .event_name = "mem_load_retired.dtlb_miss",
1318 },
1319 {
1320 .event_code = {0xCD},
1321 .umask = 0x0,
1322 .event_name = "simd_assist",
1323 },
1324 {
1325 .event_code = {0xCE},
1326 .umask = 0x0,
1327 .event_name = "simd_instr_retired",
1328 },
1329 {
1330 .event_code = {0xCF},
1331 .umask = 0x0,
1332 .event_name = "simd_sat_instr_retired",
1333 },
1334 {
1335 .event_code = {0xDC},
1336 .umask = 0x2,
1337 .event_name = "resource_stalls.div_busy",
1338 },
1339 {
1340 .event_code = {0xE0},
1341 .umask = 0x1,
1342 .event_name = "br_inst_decoded",
1343 },
1344 {
1345 .event_code = {0xE4},
1346 .umask = 0x1,
1347 .event_name = "bogus_br",
1348 },
1349 {
1350 .event_code = {0xE6},
1351 .umask = 0x1,
1352 .event_name = "baclears.any",
1353 },
1354 {
1355 .event_code = {0x3},
1356 .umask = 0x1,
1357 .event_name = "reissue.overlap_store",
1358 },
1359 {
1360 .event_code = {0x3},
1361 .umask = 0x81,
1362 .event_name = "reissue.overlap_store.ar",
1363 },
1364 {
1365 .event_name = 0,
1366 },
1367};
1368
1369PERFMON_REGISTER_INTEL_PMC (cpu_model_table, event_table);
1370