[PATCH 1/2] powerpc/kvm: Move pmu code in kvm folder to separate file for power9 and later platforms

Madhavan Srinivasan maddy at linux.ibm.com
Thu Jul 14 17:54:39 AEST 2022


On 7/13/22 11:11 AM, Nicholas Piggin wrote:
> Excerpts from Kajol Jain's message of July 11, 2022 1:49 pm:
>> File book3s_hv_p9_entry.c in powerpc/kvm folder consists of functions
>> like freeze_pmu, switch_pmu_to_guest and switch_pmu_to_host which are
>> specific to Performance Monitoring Unit(PMU) for power9 and later
>> platforms.
>>
>> For better maintenance, moving pmu related code from
>> book3s_hv_p9_entry.c to a new file called book3s_hv_p9_perf.c,
>> without any logic change.
>> Also make corresponding changes in the Makefile to include
>> book3s_hv_p9_perf.c during compilation.
>
>> +
>> +	if (ppc_get_pmu_inuse()) {
>> +		mtspr(SPRN_PMC1, host_os_sprs->pmc1);
>> +		mtspr(SPRN_PMC2, host_os_sprs->pmc2);
>> +		mtspr(SPRN_PMC3, host_os_sprs->pmc3);
>> +		mtspr(SPRN_PMC4, host_os_sprs->pmc4);
>> +		mtspr(SPRN_PMC5, host_os_sprs->pmc5);
>> +		mtspr(SPRN_PMC6, host_os_sprs->pmc6);
>> +		mtspr(SPRN_MMCR1, host_os_sprs->mmcr1);
>> +		mtspr(SPRN_MMCR2, host_os_sprs->mmcr2);
>> +		mtspr(SPRN_SDAR, host_os_sprs->sdar);
>> +		mtspr(SPRN_SIAR, host_os_sprs->siar);
>> +		mtspr(SPRN_SIER, host_os_sprs->sier1);
>> +
>> +		if (cpu_has_feature(CPU_FTR_ARCH_31)) {
>> +			mtspr(SPRN_MMCR3, host_os_sprs->mmcr3);
>> +			mtspr(SPRN_SIER2, host_os_sprs->sier2);
>> +			mtspr(SPRN_SIER3, host_os_sprs->sier3);
>> +		}
>> +
>> +		/* Set MMCRA then MMCR0 last */
>> +		mtspr(SPRN_MMCRA, host_os_sprs->mmcra);
>> +		mtspr(SPRN_MMCR0, host_os_sprs->mmcr0);
>> +		isync();
>> +	}
>> +}
>> +EXPORT_SYMBOL_GPL(switch_pmu_to_host);
>>
> I'm still thinking these parts of the code in particular that do the
> host PMU save/restore could be handled by calls into perf subsystem.  In
> some cases it doesn't need to save SPRs because it can recreate them or
> is not using them. Maybe it's not so simple.
Yes, we looked at this. Concern for me is counter data leak.
Host application will still have read access to these SPRs
in power9 and before.So I would recommend to save/restore host values as 
part of it.

Maddy
>
> Either way, I'm fine with this move to stat with.
>
> Reviewed-by: Nicholas Piggin <npiggin at gmail.com>


More information about the Linuxppc-dev mailing list