I've got a system running dual Xeon E5-2648L (Sandy Bridge EP). I'm running linux 2.6.27 and have APCI processor support compiled in. With the stock setup, when idle running pcm for 10 seconds gives something like:
Core (SKT) | EXEC | IPC | FREQ | AFREQ | Inst | Cycles
0 0 0.062 0.881 0.070 0.862 1118 M 1269 M
When running lmbench's memory latency test on core 0, I get something like:
Core (SKT) | EXEC | IPC | FREQ | AFREQ | Inst | Cycles
0 0 0.292 0.292 1.000 1.000 5336 M 18 G
But when I run the memory latency test on core2 (hyperthread sibling of core 0), I get something like:
Core (SKT) | EXEC | IPC | FREQ | AFREQ | Inst | Cycles
2 0 0.354 0.511 0.691 0.697 6371 M 12 G
We don't have any frequency management stuff enabled in the OS, so it should be nailed to the nominal frequency of 1.8GHz. Core 0 looks good, shows 18G cycles in 10 sec. Core 2 (and all other even cores other than 0) only shows 12G cycles in 10 sec. This maps nicely to a FREQ of 0.691 (I'd have expected 0.667 but let's not quibble), but I don't understand why AFREQ is anything other than 1 given that we're not adjusting the clock rate.
Can anyone explain either the performance difference between core 0 and the other cores, or why AFREQ is smaller than expected?
Incidentally, if I run a cpu hog on core 0, then core 2 (and all other cores on socket 0) run at full speed and give 18G cycles.




