Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sparc: Don't do expensive hypervisor PCR write unless necessary.

The hypervisor call is only necessary if hypervisor events are
being requested.

So if we're not tracking hypervisor events, simply do a direct
register write.

Signed-off-by: David S. Miller <davem@davemloft.net>

+5 -2
+5 -2
arch/sparc/kernel/pcr.c
··· 80 80 { 81 81 unsigned long ret; 82 82 83 - ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val); 84 - if (ret != HV_EOK) 83 + if (val & PCR_N2_HTRACE) { 84 + ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val); 85 + if (ret != HV_EOK) 86 + write_pcr(val); 87 + } else 85 88 write_pcr(val); 86 89 } 87 90