Thread (9 messages) 9 messages, 2 authors, 2021-05-26

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

From: Siddharth Chandrasekaran <hidden>
Date: 2021-05-25 09:02:55
Also in: kvm, lkml

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:
quoted
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@amazon.com>
Cc: Evgeny Iakovlev <redacted>
Signed-off-by: Siddharth Chandrasekaran <redacted>
---
  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


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help