Add test showing rdpmc of hardware counters occasionally jumping by 2^48
I've been having problems using rdpmc to read hardware counters that are set with perf_event_open(). I think the issue is that 'offset' field in the mmap buffer periodically periodically has its high bit set.
Here's what I see when I run this test program on Skylake with Linux 4.4.4:
nate@skylake:~/git/perf_event_tests/tests/rdpmc$ rdpmc_jump Testing if hardware counters exhibit unexpected jumps with rdpmc. Trying up to 100000 iterations (10000000 allowed per iteration) Got spurious count of 281474977720397 in iteration 230 Max count for previous iterations was 1010185 Testing if hardware counters exhibit unexpected jumps with rdpmc FAILED
nate@skylake:~/git/perf_event_tests/tests/rdpmc$ rdpmc_jump Testing if hardware counters exhibit unexpected jumps with rdpmc. Trying up to 100000 iterations (10000000 allowed per iteration) Got spurious count of 281474977714973 in iteration 7295 Max count for previous iterations was 1007879 Testing if hardware counters exhibit unexpected jumps with rdpmc FAILED