Lines Matching defs:events

29 static int do_count_loop(struct event *events, u64 instructions,
43 event_read(&events[0]);
44 event_read(&events[1]);
45 event_read(&events[2]);
47 expected = instructions + overhead + (events[2].result.value * 10);
48 difference = events[0].result.value - expected;
49 percentage = (double)difference / events[0].result.value * 100;
53 event_report(&events[0]);
54 event_report(&events[1]);
55 event_report(&events[2]);
59 printf("Actual %llu\n", events[0].result.value);
63 event_reset(&events[0]);
64 event_reset(&events[1]);
65 event_reset(&events[2]);
72 if (difference / events[0].result.value)
79 static u64 determine_overhead(struct event *events)
84 do_count_loop(events, 0, 0, false);
85 overhead = events[0].result.value;
88 do_count_loop(events, 0, 0, false);
89 current = events[0].result.value;
104 struct event events[3];
110 setup_event(&events[0], PERF_COUNT_HW_INSTRUCTIONS, PERF_TYPE_HARDWARE, "instructions");
111 setup_event(&events[1], PERF_COUNT_HW_CPU_CYCLES, PERF_TYPE_HARDWARE, "cycles");
112 setup_event(&events[2], PM_STCX_FAIL, PERF_TYPE_RAW, "stcx_fail");
114 if (event_open(&events[0])) {
119 if (event_open_with_group(&events[1], events[0].fd)) {
124 if (event_open_with_group(&events[2], events[0].fd)) {
129 overhead = determine_overhead(events);
133 FAIL_IF(do_count_loop(events, 1000000, overhead, true));
136 FAIL_IF(do_count_loop(events, 10000000, overhead, true));
139 FAIL_IF(do_count_loop(events, 100000000, overhead, true));
142 FAIL_IF(do_count_loop(events, 1000000000, overhead, true));
145 FAIL_IF(do_count_loop(events, 16000000000, overhead, true));
147 event_close(&events[0]);
148 event_close(&events[1]);