• Stephane Eranian's avatar
    perf/x86: Add LBR software filter support for Intel CPUs · 3e702ff6
    Stephane Eranian authored
    This patch adds an internal sofware filter to complement
    the (optional) LBR hardware filter.
    
    The software filter is necessary:
    
     - as a substitute when there is no HW LBR filter (e.g., Atom, Core)
     - to complement HW LBR filter in case of errata (e.g., Nehalem/Westmere)
     - to provide finer grain filtering (e.g., all processors)
    
    Sometimes the LBR HW filter cannot distinguish between two types
    of branches. For instance, to capture syscall as CALLS, it is necessary
    to enable the LBR_FAR filter which will also capture JMP instructions.
    Thus, a second pass is necessary to filter those out, this is what the
    SW filter can do.
    
    The SW filter is built on top of the internal x86 disassembler. It
    is a best effort filter especially for user level code. It is subject
    to the availability of the text page of the program.
    
    The SW filter is enabled on all Intel processors. It is bypassed
    when the user is capturing all branches at all priv levels.
    Signed-off-by: default avatarStephane Eranian <eranian@google.com>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1328826068-11713-9-git-send-email-eranian@google.comSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
    3e702ff6
perf_event_intel_ds.c 17 KB