perf: is it possible to userspace rdpmc but only on a certain core type
From: Vince Weaver
Date: Fri Jan 17 2025 - 17:05:16 EST
Hello
so we've been working on PAPI support for Intel Top-Down events, which
let's say does "exciting" things involving the rdpmc instruction.
One issue we are having is that on a hybrid machine (Raptor Lake in this
case with performance/efficiency cores) there is no top-down support
for the E-cores, and it will gpf/segfault if you try to rdpmc the top-down
events.
Obviously PAPI would like to avoid this, and somehow only run the rdpmc
from userspace if scheduled on a P-core.
Is there any way to atomically do this? Somehow detect what core we are
on and atomically execute a userspace instruction before a core-reschedule
can happen?
Or barring that, any other way to handle this in a way that won't crash
without having to have the users have to bind to a core any time they want
to run PAPI?
Thanks
Vince Weaver
vincent.weaver@xxxxxxxxx