Re: [PATCH] KVM: x86: Raise #GP when guest vCPU do not support PMU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On 10 Apr 2019, at 12:14, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
> 
> On 25/03/19 20:10, Liran Alon wrote:
>> Before this change, reading a VMware pseduo PMC will succeed even when
>> PMU is not supported by guest. This can easily be seen by running
>> kvm-unit-test vmware_backdoors with "-cpu host,-pmu" option.
>> 
>> Reviewed-by: Mihai Carabas <mihai.carabas@xxxxxxxxxx>
>> Signed-off-by: Liran Alon <liran.alon@xxxxxxxxxx>
>> ---
>> arch/x86/kvm/pmu.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>> 
>> diff --git a/arch/x86/kvm/pmu.c b/arch/x86/kvm/pmu.c
>> index 58ead7db71a3..e39741997893 100644
>> --- a/arch/x86/kvm/pmu.c
>> +++ b/arch/x86/kvm/pmu.c
>> @@ -281,9 +281,13 @@ static int kvm_pmu_rdpmc_vmware(struct kvm_vcpu *vcpu, unsigned idx, u64 *data)
>> int kvm_pmu_rdpmc(struct kvm_vcpu *vcpu, unsigned idx, u64 *data)
>> {
>> 	bool fast_mode = idx & (1u << 31);
>> +	struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
>> 	struct kvm_pmc *pmc;
>> 	u64 ctr_val;
>> 
>> +	if (!pmu->version)
>> +		return 1;
>> +
>> 	if (is_vmware_backdoor_pmc(idx))
>> 		return kvm_pmu_rdpmc_vmware(vcpu, idx, data);
>> 
>> 
> 
> Queued, thanks.  I wonder if we should expose the state of
> vmware_backdoors as a capability.  It would surely help writing a unit
> test for this stuff.
> 
> Paolo

I agree.

In fact, I think that we currently also others KVM module parameters that should actually be controlled on a per-VM basis.
I will include in this list the following:
1) ignore_msrs
2) enable_vmware_backdoor
3) kvmclock_periodic_sync
4) force_emulation_prefix
5) fasteoi
6) vmentry_l1d_flush

-Liran











[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux