Hello, i'm new in the CodeXL 'world' - i'm using the tool for CPU profiling, in a Opteron Bulldozer ccNUMA architecture, with 64 cores and 8 NUMA nodes.
The problem is that i can't evaluate Northbridge events...for example, if i try a Custom Profile with only the event '[0E9] CPU/IO Requests to Memory/IO', CodeXL shows a textbox "The configuration contains a northbridge event: [0xe9] <a bunch of non-printable characters> which is not a valid sampling event. Please fix the configuration". What is this? I can't do northbridge profiling or this means a misconfiguration of my part?
I really need to profile northbridge events in my experiments...hope it's possible. I'm on Ubuntu 12.04, and below is a paste of the output of 'cat /proc/cpuinfo' [only 1 CPU].
Thanks in advance,
Guilherme
output of 'cat /proc/cpuinfo' :
processor : 63
vendor_id : AuthenticAMD
cpu family : 21
model : 1
model name : AMD Opteron(tm) Processor 6282 SE
stepping : 2
microcode : 0x6000613
cpu MHz : 1400.000
cache size : 2048 KB
physical id : 3
siblings : 16
core id : 7
cpu cores : 8
apicid : 143
initial apicid : 111
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core arat cpb npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips : 5199.98
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb
I'm experiencing the exact same problem, and that was the reason I came to this forum in the first place. I'm also running Ubuntu 12.04 (with kernel upgraded to 3.8.0-35), the only difference is that my processor is an AMD Opteron(TM) Processor 6272. I can profile non-northbridge events with perf, but any NB events return in a event not supported message.
Guilherme, I'm very much interested in any advances you may make regarding this topic, so please let me know if you manage to profile northbridge events. I'll surely let you know if I find something out.
Thanks very much for the interest iomartin - i'm also very interested in this. Any advances on my part i'll let you know too...
I hope some AMD expert could help us here...i'm afraid that our architectures have no capabilities to get northbridge events profiled 😞
better if i'm wrong hehehe
I think we should be able to profile NB events. From this proposed patch to perf that enables northbridge counters on family 15h, the author says that
"NB counters are enabled if the nb performance counter extensions cpuid flag is set."
I checked my processor and the flag is set. To check that, I used the following code (reference). If you check the reference, you'll see that feature 24 is NB performance counter extensions. In my case, it's set.
#include <cpuid.h>
#include <stdio.h>
int main()
{
unsigned a, b, c, d;
/* check __get_cpuid_max here */
__cpuid(0x80000001, a, b, c, d);
printf("eax: %x ebx %x ecx %x edx %x\n", a, b, c, d);
int i;
for (i = 0; i < 31; i++)
if (c & (1 << i))
printf("feature %d supported\n", i);
return 0;
}
Very nice iomartin! I checked here and my processor has the feature too...
But i couldn't see the reference on your post - seems the link is empty. Could you post this reference again ? I'm curious...
Thanks very much for the help...hope CodeXL allow us to use this feature, or another profiling tool. Do you know another good tool ? I was working with likwid (likwid - Lightweight performance tools - Google Project Hosting), the perfctr tool could allow us to measure northbridge events. But i give up likwid to try CodeXL, once this is an official AMD tool...
Dunno what happened to the reference, it was actually just the wikipedia article on cpuid: http://en.wikipedia.org/wiki/CPUID. Link fixed on previous post as well.
I've been trying to use perf, and I've been asking for help at their mailing list as well. You can check what's come out so far here: http://thread.gmane.org/gmane.linux.kernel.perf.user/1510
Thank you iomartin! It seems perf has the capabilities to profile northbridge, but it needs a manual modification, right? That thread in perf mailing list could help us...