• Athira Rajeev's avatar
    powerpc/perf: Fix reading of MSR[HV/PR] bits in trace-imc · 82715a0f
    Athira Rajeev authored
    IMC trace-mode uses MSR[HV/PR] bits to set the cpumode for the
    instruction pointer captured in each sample. The bits are fetched from
    the third double word of the trace record. Reading third double word
    from IMC trace record should use be64_to_cpu() along with READ_ONCE
    inorder to fetch correct MSR[HV/PR] bits. Patch addresses this change.
    
    Currently we are using PERF_RECORD_MISC_HYPERVISOR as cpumode if MSR
    HV is 1 and PR is 0 which means the address is from host counter. But
    using PERF_RECORD_MISC_HYPERVISOR for host counter data will fail to
    resolve the address -> symbol during "perf report" because perf tools
    side uses PERF_RECORD_MISC_KERNEL to represent the host counter data.
    Therefore, fix the trace imc sample data to use
    PERF_RECORD_MISC_KERNEL as cpumode for host kernel information.
    
    Fixes: 77ca3951 ("powerpc/perf: Add kernel support for new MSR[HV PR] bits in trace-imc")
    Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/1598424029-1662-1-git-send-email-atrajeev@linux.vnet.ibm.com
    82715a0f
imc-pmu.c 46.4 KB