• Paul Mackerras's avatar
    powerpc/perf_counter: Make sure PMU gets enabled properly · 01d0287f
    Paul Mackerras authored
    This makes sure that we call the platform-specific ppc_md.enable_pmcs
    function on each CPU before we try to use the PMU on that CPU.  If the
    CPU goes off-line and then on-line, we need to do the enable_pmcs call
    again, so we use the hw_perf_counter_setup hook to ensure that.  It gets
    called as each CPU comes online, but it isn't called on the CPU that is
    coming up, so this adds the CPU number as an argument to it (there were
    no non-empty instances of hw_perf_counter_setup before).
    
    This also arranges to set the pmcregs_in_use field of the lppaca (data
    structure shared with the hypervisor) on each CPU when we are using the
    PMU and clear it when we are not.  This allows the hypervisor to optimize
    partition switches by not saving/restoring the PMU registers when we
    aren't using the PMU.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    01d0287f
perf_counter.c 40.6 KB