• Peter Zijlstra's avatar
    perf: Reimplement frequency driven sampling · abd50713
    Peter Zijlstra authored
    There was a bug in the old period code that caused intel_pmu_enable_all()
    or native_write_msr_safe() to show up quite high in the profiles.
    
    In staring at that code it made my head hurt, so I rewrote it in a
    hopefully simpler fashion. Its now fully symetric between tick and
    overflow driven adjustments and uses less data to boot.
    
    The only complication is that it basically wants to do a u128 division.
    The code approximates that in a rather simple truncate until it fits
    fashion, taking care to balance the terms while truncating.
    
    This version does not generate that sampling artefact.
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <new-submission>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    abd50713
perf_event.c 126 KB