Messages in this thread | | | From | Vince Weaver <> | Date | Thu, 10 Jan 2019 12:35:12 -0500 (EST) | Subject | perf: rdpmc bug when viewing all procs on remote cpu |
| |
Hello
I think this is a bug turned up by PAPI. I've been trying to track down where this happens in the perf_event code myself, but it might be faster to just report it.
If you create a per-process attached to CPU event: perf_event_open(attr, 0, X, -1, 0); the mmap event index is set to "0" (not available) on all cores but the current one so the rdpmc read code can properly fall back to read().
However if you create an all-process attached to CPU event: perf_event_open(attr, -1, X, -1, 0); the mmap event index is set as if this were a valid event and so the rdpmc succeeds even though it shouldn't (we're trying to read an event value on a remote cpu with a local rdpmc).
so I think somehow in the perf_event_open pid=-1 case rdpmc is not getting blocked properly...
Vince
| |