6 Replies Latest reply on Feb 19, 2014 11:08 AM by guipy

    Problem using northbridge events

    guipy

      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

        • Re: Problem using northbridge events
          iomartin

          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.

            • Re: Problem using northbridge events
              guipy

              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

                • Re: Problem using northbridge events
                  iomartin

                  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;

                  }

                  1 of 1 people found this helpful
              • Re: Problem using northbridge events
                iomartin

                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