Я планирую измерить счетчики PMU для пропусков пропусков ветвей L1, L2, L3, я прочитал соответствующие документы Intel, но я не уверен в нижеприведенных сценариях. Может кто-нибудь прояснить?PMU для многопоточной среды
//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.что будет происходить, если процесс запланирован и запланирован обратно к тому же самому ядру, между тем какой-то другой процесс сбросит счетчики PMU?
Как убедиться, что мы считываем правильные значения из счетчиков PMU.?
детали машины: CentOS Linux с ядром 3.10.0-327.22.2.el7.x86_64, который питается с Intel (R) сердцевиной (TM) i7-3770 CPU @ 3.40GHz
Спасибо
Вы * понимаете, что 'perf' может читать счетчики производительности оборудования для вас? – EOF
Да, я читаю перформационные документы. Это не очень полезно для моего приложения, оно имеет множество ограничений/linux-зависимостей, которые нам не нужны. –