• Michael Neuling's avatar
    powerpc/perf: Fix setting of "to" addresses for BHRB · 69123184
    Michael Neuling authored
    Currently we only set the "to" address in the branch stack when the CPU
    explicitly gives us a value.  Unfortunately it only does this for XL form
    branches (eg blr, bctr, bctar) and not I and B form branches (eg b, bc).
    
    Fortunately if we read the instruction from memory we can extract the offset of
    a branch and calculate the target address.
    
    This adds a function power_pmu_bhrb_to() to calculate the target/to address of
    the corresponding I and B form branches.  It handles branches in both user and
    kernel spaces.  It also plumbs this into the perf brhb reading code.
    Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    69123184
core-book3s.c 44.3 KB