• Kim Phillips's avatar
    perf/x86/amd: Fix sampling Large Increment per Cycle events · 26e52558
    Kim Phillips authored
    Commit 57388912 ("perf/x86/amd: Add support for Large Increment
    per Cycle Events") mistakenly zeroes the upper 16 bits of the count
    in set_period().  That's fine for counting with perf stat, but not
    sampling with perf record when only Large Increment events are being
    sampled.  To enable sampling, we sign extend the upper 16 bits of the
    merged counter pair as described in the Family 17h PPRs:
    
    "Software wanting to preload a value to a merged counter pair writes the
    high-order 16-bit value to the low-order 16 bits of the odd counter and
    then writes the low-order 48-bit value to the even counter. Reading the
    even counter of the merged counter pair returns the full 64-bit value."
    
    Fixes: 57388912 ("perf/x86/amd: Add support for Large Increment per Cycle Events")
    Signed-off-by: default avatarKim Phillips <kim.phillips@amd.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
    26e52558
core.c 63.4 KB