From: Sean Christopherson <seanjc@google.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
Li RongQing <lirongqing@baidu.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] KVM: selftests: Check that KVM_FEATURE_PV_UNHALT is cleared with KVM_X86_DISABLE_EXITS_HLT
Date: Thu, 7 Mar 2024 20:13:03 -0800 [thread overview]
Message-ID: <ZeqQT1DAxnji75KZ@google.com> (raw)
In-Reply-To: <20240228101837.93642-4-vkuznets@redhat.com>
Shortlog is a wee bit long, I went with:
KVM: selftests: Check that PV_UNHALT is cleared when HLT exiting is disabled
On Wed, Feb 28, 2024, Vitaly Kuznetsov wrote:
> KVM_FEATURE_PV_UNHALT is expected to get cleared from KVM PV feature CPUID
> data when KVM_X86_DISABLE_EXITS_HLT is enabled. Add the corresponding test
> to kvm_pv_test.
>
> Note, the newly added code doesn't actually test KVM_FEATURE_PV_UNHALT and
> KVM_X86_DISABLE_EXITS_HLT features.
>
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
...
> + TEST_ASSERT(ent->eax & (1 << KVM_FEATURE_PV_UNHALT),
> + "Enabling X86_FEATURE_KVM_PV_UNHALT had no effect");
> +
> + /* Make sure KVM clears vcpu->arch.kvm_cpuid */
> + ent = vcpu_get_cpuid_entry(vcpu, KVM_CPUID_SIGNATURE);
> + kvm_sig_old = ent->ebx;
> + ent->ebx = 0xdeadbeef;
> + vcpu_set_cpuid(vcpu);
> +
> + vm_enable_cap(vm, KVM_CAP_X86_DISABLE_EXITS, KVM_X86_DISABLE_EXITS_HLT);
> + ent = vcpu_get_cpuid_entry(vcpu, KVM_CPUID_SIGNATURE);
> + ent->ebx = kvm_sig_old;
> + vcpu_set_cpuid(vcpu);
> + ent = vcpu_get_cpuid_entry(vcpu, KVM_CPUID_FEATURES);
> +
> + TEST_ASSERT(!(ent->eax & (1 << KVM_FEATURE_PV_UNHALT)),
X86_FEATURE_KVM_PV_UNHALT already exists, all we're missing is a helper to get
a CPUID feature from host userspace given a vCPU. I added this
static inline bool vcpu_cpuid_has(struct kvm_vcpu *vcpu,
struct kvm_x86_cpu_feature feature)
{
struct kvm_cpuid_entry2 *entry;
entry = __vcpu_get_cpuid_entry(vcpu, feature.function, feature.index);
return *((&entry->eax) + feature.reg) & BIT(feature.bit);
}
and used it in this test instead of open coding the reg+bit.
next prev parent reply other threads:[~2024-03-08 4:13 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-28 10:18 [PATCH 0/3] KVM: x86: Fix KVM_FEATURE_PV_UNHALT update logic Vitaly Kuznetsov
2024-02-28 10:18 ` [PATCH 1/3] KVM: x86: Introduce __kvm_get_hypervisor_cpuid() helper Vitaly Kuznetsov
2024-02-28 10:18 ` [PATCH 2/3] KVM: x86: Use actual kvm_cpuid.base for clearing KVM_FEATURE_PV_UNHALT Vitaly Kuznetsov
2024-02-28 23:27 ` Sean Christopherson
2024-02-29 13:20 ` Vitaly Kuznetsov
2024-02-29 18:54 ` Sean Christopherson
2024-02-28 10:18 ` [PATCH 3/3] KVM: selftests: Check that KVM_FEATURE_PV_UNHALT is cleared with KVM_X86_DISABLE_EXITS_HLT Vitaly Kuznetsov
2024-03-08 4:13 ` Sean Christopherson [this message]
2024-03-08 4:13 ` [PATCH 0/3] KVM: x86: Fix KVM_FEATURE_PV_UNHALT update logic Sean Christopherson
2024-03-08 10:44 ` Vitaly Kuznetsov
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=ZeqQT1DAxnji75KZ@google.com \
--to=seanjc@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lirongqing@baidu.com \
--cc=pbonzini@redhat.com \
--cc=vkuznets@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.