Я планирую измерить счетчики PMU для L1, L2, L3 пропусков пропусков ветвления, я прочитал связанные документы Intel, но я не уверен в нижеприведенных сценариях. Может кто-то прояснит?
//assume PMU reset and PERFEVTSELx configurtion done above
ioctl(fd, IOCTL_MSR_CMDS, (long long)msr_start) //PMU start counters
my_program();
ioctl(fd, IOCTL_MSR_CMDS, (long long)msr_stop) ///PMU stop
//now reading PMU counters
1. что произойдет, если мой процесс запланирован, когда my_program() запущен и запланирован на другое ядро?
2. что произойдет, если процесс закроется и снова вернется к тому же самому ядру, между тем какой-нибудь другой процесс reset счетчики PMU?
Как убедиться, что мы читаем правильные значения из счетчиков PMU.?
Сведения о машине: CentOS с ядром Linux 3.10.0-327.22.2.el7.x86_64, который оснащен процессором Intel (R) Core (TM) i7-3770 @3,40 ГГц
Спасибо