From: Paolo Bonzini <pbonzini@redhat.com>
To: Xiaoyao Li <xiaoyao.li@intel.com>,
Li RongQing <lirongqing@baidu.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
x86@kernel.org, hpa@zytor.com, bp@alien8.de, mingo@redhat.com,
tglx@linutronix.de, jmattson@google.com, wanpengli@tencent.com,
vkuznets@redhat.com, sean.j.christopherson@intel.com,
wei.huang2@amd.com
Subject: Re: [PATCH][v6] KVM: X86: support APERF/MPERF registers
Date: Fri, 5 Jun 2020 08:35:33 +0200 [thread overview]
Message-ID: <72a75924-c3cb-6b23-62bd-67b739dec166@redhat.com> (raw)
In-Reply-To: <b70d03dd-947f-dee5-5499-3b381372497d@intel.com>
On 05/06/20 07:00, Xiaoyao Li wrote:
> you could do
>
> bool guest_cpuid_aperfmperf = false;
> if (best)
> guest_cpuid_aperfmperf = !!(best->ecx & BIT(0));
>
> if (guest_cpuid_aperfmerf != guest_has_aperfmperf(vcpu->kvm))
> return -EINVAL;
>
>
> In fact, I think we can do nothing here. Leave it as what usersapce
> wants just like how KVM treats other CPUID bits.
The reason to do it like Rongqing did is that it's suggested to take the
output of KVM_GET_SUPPORTED_CPUID and pass it down to KVM_SET_CPUID2.
Unfortunately we have KVM_GET_SUPPORTED_CPUID as a /dev/kvm (not VM)
ioctl, otherwise you could have used guest_has_aperfmperf to affect the
output of KVM_GET_SUPPORTED_CPUID.
I think it's okay however to keep it simple as you suggest. In this
case however __do_cpuid_func must not return the X86_FEATURE_APERFMPERF bit.
The guest can instead check for the availability of KVM_CAP_APERFMPERF,
which is already done in Rongqing's patch.
>> @@ -4930,6 +4939,11 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
>> kvm->arch.exception_payload_enabled = cap->args[0];
>> r = 0;
>> break;
>> + case KVM_CAP_APERFMPERF:
>> + kvm->arch.aperfmperf_mode =
>> + boot_cpu_has(X86_FEATURE_APERFMPERF) ? cap->args[0] : 0;
>
> Shouldn't check whether cap->args[0] is a valid value?
Yes, only valid values should be allowed.
Also, it should fail with -EINVAL if the host does not have
X86_FEATURE_APERFMPERF.
Thanks,
Paolo
next prev parent reply other threads:[~2020-06-05 6:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 1:44 [PATCH][v6] KVM: X86: support APERF/MPERF registers Li RongQing
2020-06-05 2:32 ` Xu, Like
2020-06-05 4:23 ` 答复: " Li,Rongqing
2020-06-05 5:28 ` Like Xu
2020-06-05 9:41 ` 答复: " Li,Rongqing
2020-06-05 11:15 ` Paolo Bonzini
2020-06-05 5:00 ` Xiaoyao Li
2020-06-05 6:35 ` Paolo Bonzini [this message]
2020-06-05 17:16 ` Jim Mattson
2020-06-05 17:22 ` Paolo Bonzini
2020-06-06 11:53 ` 答复: " Li,Rongqing
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=72a75924-c3cb-6b23-62bd-67b739dec166@redhat.com \
--to=pbonzini@redhat.com \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jmattson@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lirongqing@baidu.com \
--cc=mingo@redhat.com \
--cc=sean.j.christopherson@intel.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.com \
--cc=wei.huang2@amd.com \
--cc=x86@kernel.org \
--cc=xiaoyao.li@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).