• I
    perf events: Add generic front-end and back-end stalled cycle event definitions · 8f622422
    Ingo Molnar 提交于
    Add two generic hardware events: front-end and back-end stalled cycles.
    
    These events measure conditions when the CPU is executing code but its
    capabilities are not fully utilized. Understanding such situations and
    analyzing them is an important sub-task of code optimization workflows.
    
    Both events limit performance: most front end stalls tend to be caused
    by branch misprediction or instruction fetch cachemisses, backend
    stalls can be caused by various resource shortages or inefficient
    instruction scheduling.
    
    Front-end stalls are the more important ones: code cannot run fast
    if the instruction stream is not being kept up.
    
    An over-utilized back-end can cause front-end stalls and thus
    has to be kept an eye on as well.
    
    The exact composition is very program logic and instruction mix
    dependent.
    
    We use the terms 'stall', 'front-end' and 'back-end' loosely and
    try to use the best available events from specific CPUs that
    approximate these concepts.
    
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Link: http://lkml.kernel.org/n/tip-7y40wib8n000io7hjpn1dsrm@git.kernel.orgSigned-off-by: NIngo Molnar <mingo@elte.hu>
    8f622422
perf_event.h 31.5 KB