• Andi Kleen's avatar
    perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake · 442f5c74
    Andi Kleen authored
    I added UOPS_RETIRED.ALL by mistake to the Skylake PEBS event list for
    cycles:pp. But the event is not documented for Skylake, and has some
    issues.
    
    The recommended replacement for cycles:pp is to use
    INST_RETIRED.ANY+pebs as a base, similar to what CPUs before Sandy
    Bridge did. This new event is called INST_RETIRED.TOTAL_CYCLES_PS. The
    event is not really new, but has been already used by perf before
    Sandy Bridge for the original cycles:p
    
    Note the SDM doesn't document that event either, but it's being
    documented in the latest version of the event list on:
    
      https://download.01.org/perfmon/SKL
    
    
    
    This patch does:
    
     - Remove UOPS_RETIRED.ALL from the Skylake PEBS event list
    
     - Add INST_RETIRED.ANY to the Skylake PEBS event list, and an table entry to
       allow cmask=16,inv=1 for cycles:pp
    
     - We don't need an extra entry for the base INST_RETIRED event,
       because it is already covered by the catch-all PEBS table entry.
    
     - Switch Skylake to use the Core2 PEBS alias (which is
       INST_RETIRED.TOTAL_CYCLES_PS)
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: hpa@zytor.com
    Link: http://lkml.kernel.org/r/1448929689-13771-1-git-send-email-andi@firstfloor.org
    
    Signed-off-by: Ingo Molnar's avatarIngo Molnar <mingo@kernel.org>
    442f5c74
perf_event_intel.c 101 KB