Friday, April 19, 2019

c - PMU for multi threaded environment



I am planning to measure PMU counters for L1,L2,L3 misses branch prediction misses , I have read related Intel documents but i am unsure about the below scenarios.could some one please clarify ?




//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.what will happen if my process is scheduled out when my_program() is running, and scheduled to another core?




2.what will happen if process scheduled out and schedule back to same core again, meanwhile some other process reset the PMU counters?



How to make sure that we are reading the correct values from PMU counters.?




Machine details:CentOS with Linux kernel 3.10.0-327.22.2.el7.x86_64 , which is powered up with Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz




Thanks


Answer




i got the answers from some Intel forum, the link is below.



https://software.intel.com/en-us/forums/intel-moderncode-for-parallel-architectures/topic/673602


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...