Lin,
Looked at the perfmon code, and it seems the mask is actual
cores, not threads:
rdmsrl(MSR_NHM_UNC_GLOBAL_CTRL, val);
val |= 1ULL << (48 + cpu_data(smp_processor_id()).cpu_core_id);
wrmsrl(MSR_NHM_UNC_GLOBAL_CTRL, val);
That seems to imply both threads will get the interrupt.
In the the overflowed event was programmed from on of the two threads, that
means one will process the overflow, the other will get spurious.
On the cores where no uncore was programmed, then both threads will have
a spurious interrupt.
That brings up back to the 'spurious interrupt' issue and the 'NMI
Dazed' message
that Don tried to eliminate. Now we have a new situation where we will
get interrupt
with no work to do, so the perf_event will pass the interrupt onto the
next subsystem
and eventually we will get the 'dazed' message. I am just guessing here....
On Fri, Nov 26, 2010 at 9:18 AM, Stephane Eranian <eranian@google.com> wrote: