2021-04-14 07:01:42

by Siddharth Chandrasekaran

[permalink] [raw]
Subject: [PATCH v3 4/4] KVM: hyper-v: Advertise support for fast XMM hypercalls

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 <[email protected]>
Cc: Evgeny Iakovlev <[email protected]>
Signed-off-by: Siddharth Chandrasekaran <[email protected]>
---
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;

--
2.17.1




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




2021-05-24 12:02:01

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH v3 4/4] KVM: hyper-v: Advertise support for fast XMM hypercalls

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 <[email protected]>
> Cc: Evgeny Iakovlev <[email protected]>
> Signed-off-by: Siddharth Chandrasekaran <[email protected]>
> ---
> 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.

Paolo

2021-05-25 10:31:14

by Siddharth Chandrasekaran

[permalink] [raw]
Subject: Re: [PATCH v3 4/4] KVM: hyper-v: Advertise support for fast XMM hypercalls

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 <[email protected]>
> > Cc: Evgeny Iakovlev <[email protected]>
> > Signed-off-by: Siddharth Chandrasekaran <[email protected]>
> > ---
> > 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



2021-05-25 11:22:07

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH v3 4/4] KVM: hyper-v: Advertise support for fast XMM hypercalls

On 25/05/21 11:00, Siddharth Chandrasekaran wrote:
> 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.

You can still send v4.

Paolo

2021-05-26 12:03:35

by Siddharth Chandrasekaran

[permalink] [raw]
Subject: Re: [PATCH v3 4/4] KVM: hyper-v: Advertise support for fast XMM hypercalls

On Tue, May 25, 2021 at 01:20:41PM +0200, Paolo Bonzini wrote:
> On 25/05/21 11:00, Siddharth Chandrasekaran wrote:
> > 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.
>
> You can still send v4.

Thanks, I've sent v4 with just the fixup. I'll send a separate patch for
the guest cpuid check later.

~ 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