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 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



[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