Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

The performance counter can't generate the overflow interrupt



Recently the performance counters in my processor (core i7-4790K) behave weird. When my target single-thread program runs on some core, the performance can generate nornaml overflow interrupt, but it can't on some other core. Once I reboot linux (4.4), all on-line cores can generate normal interrupt for my program. It's so strange.  Also this phenomenon is not affected by the setup of watchdog. No matter whether I turn on  or off the watchdog, this phenomenon always exist. BTW, I use a linux kernel module to set the initial value of the performance counter like (-1000000), and the related control msrs have also been setup correctly. In my module, I use "apic_write(APIC_LVTPC,APIC_DM_NMI);" to set the pmi as a nmi in the local vector table.

After carefully checking and testing, I have much confidence to be sure that my tool doesn't have the bugs. As you see, it just behaves strangely in some cores, not all cores. Also a reboot can make everything is ok. So is it possible that some key internal msr registers were messed up with some unknown ways?

Thanks in advance!

0 Kudos
0 Replies