Re: [PATCH v3 4/4] KVM: hyper-v: Advertise support for fast XMM hypercalls
From: Siddharth Chandrasekaran
Date: Tue May 25 2021 - 05:02:55 EST
On Mon, May 24, 2021 at 02:00:22PM +0200, Paolo Bonzini wrote:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> On 13/04/21 23:50, Siddharth Chandrasekaran wrote:
> > Now that kvm_hv_flush_tlb() has been patched to support XMM hypercall
> > inputs, we can start advertising this feature to guests.
> >
> > Cc: Alexander Graf <graf@xxxxxxxxxx>
> > Cc: Evgeny Iakovlev <eyakovl@xxxxxxxxx>
> > Signed-off-by: Siddharth Chandrasekaran <sidcha@xxxxxxxxx>
> > ---
> > arch/x86/include/asm/hyperv-tlfs.h | 7 ++++++-
> > arch/x86/kvm/hyperv.c | 1 +
> > 2 files changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h
> > index ee6336a54f92..597ae1142864 100644
> > --- a/arch/x86/include/asm/hyperv-tlfs.h
> > +++ b/arch/x86/include/asm/hyperv-tlfs.h
> > @@ -52,7 +52,7 @@
> > * Support for passing hypercall input parameter block via XMM
> > * registers is available
> > */
> > -#define HV_X64_HYPERCALL_PARAMS_XMM_AVAILABLE BIT(4)
> > +#define HV_X64_HYPERCALL_XMM_INPUT_AVAILABLE BIT(4)
> > /* Support for a virtual guest idle state is available */
> > #define HV_X64_GUEST_IDLE_STATE_AVAILABLE BIT(5)
> > /* Frequency MSRs available */
> > @@ -61,6 +61,11 @@
> > #define HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE BIT(10)
> > /* Support for debug MSRs available */
> > #define HV_FEATURE_DEBUG_MSRS_AVAILABLE BIT(11)
> > +/*
> > + * Support for returning hypercall output block via XMM
> > + * registers is available
> > + */
> > +#define HV_X64_HYPERCALL_XMM_OUTPUT_AVAILABLE BIT(15)
> > /* stimer Direct Mode is available */
> > #define HV_STIMER_DIRECT_MODE_AVAILABLE BIT(19)
> >
> > diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> > index cd6c6f1f06a4..0f6fd7550510 100644
> > --- a/arch/x86/kvm/hyperv.c
> > +++ b/arch/x86/kvm/hyperv.c
> > @@ -2235,6 +2235,7 @@ int kvm_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
> > ent->ebx |= HV_POST_MESSAGES;
> > ent->ebx |= HV_SIGNAL_EVENTS;
> >
> > + ent->edx |= HV_X64_HYPERCALL_XMM_INPUT_AVAILABLE;
> > ent->edx |= HV_FEATURE_FREQUENCY_MSRS_AVAILABLE;
> > ent->edx |= HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE;
> >
> >
>
> Queued, thanks.
Have you already picked these? Or can you still wait for v4? I can send
send separate patches too if it is too late to drop them. I had one
minor fixup and was waiting for Vitaly's changes to get merged as he
wanted me to add checks on the guest exposed cpuid bits before handling
XMM args.
Apologies for the trouble.
~ Sid.
Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879