]> xenbits.xensource.com Git - people/pauldu/xen.git/commitdiff
xl / libxl: add 'ex_processor_mask' into 'libxl_viridian_enlightenment' ex-processor-masks7
authorPaul Durrant <pdurrant@amazon.com>
Wed, 11 Nov 2020 17:51:13 +0000 (17:51 +0000)
committerPaul Durrant <pdurrant@amazon.com>
Wed, 2 Dec 2020 09:39:42 +0000 (09:39 +0000)
Adding the new value into the enumeration makes it immediately available
to xl, so this patch adjusts the xl.cfg(5) documentation accordingly.

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
---
Cc: Ian Jackson <iwj@xenproject.org>
Cc: Wei Liu <wl@xen.org>
Cc: Anthony PERARD <anthony.perard@citrix.com>
docs/man/xl.cfg.5.pod.in
tools/include/libxl.h
tools/libs/light/libxl_types.idl
tools/libs/light/libxl_x86.c

index 0532739c1fff933015b10a77970125c2bbeb653f..3f0f8de1e9887f98e6dd2e141700187af153c458 100644 (file)
@@ -2318,6 +2318,14 @@ This set incorporates use of a hypercall for interprocessor interrupts.
 This enlightenment may improve performance of Windows guests with multiple
 virtual CPUs.
 
+=item B<ex_processor_masks>
+
+This set enables new hypercall variants taking a variably-sized sparse
+B<Virtual Processor Set> as an argument, rather than a simple 64-bit
+mask. Hence this enlightenment must be specified for guests with more
+than 64 vCPUs if B<hcall_remote_tlb_flush> and/or B<hcall_ipi> are also
+specified.
+
 =item B<defaults>
 
 This is a special value that enables the default set of groups, which
index 1ea5b4f446e8f3447a9f223caed6b92b10d0cdb4..eaffccb30f37b0a00f8a23fe7a46a2d74d1cb247 100644 (file)
  */
 #define LIBXL_HAVE_DISK_SAFE_REMOVE 1
 
+/*
+ * LIBXL_HAVE_VIRIDIAN_EX_PROCESSOR_MASKS indicates that the
+ * 'ex_processor_masks' value is present in the viridian enlightenment
+ * enumeration.
+ */
+#define LIBXL_HAVE_VIRIDIAN_EX_PROCESSOR_MASKS 1
+
 /*
  * libxl ABI compatibility
  *
index 9d3f05f3997829b1e637f5d610b26a8276e948c1..05324736b744cc999231cc13c1fa35bfe5b6f4f1 100644 (file)
@@ -238,6 +238,7 @@ libxl_viridian_enlightenment = Enumeration("viridian_enlightenment", [
     (7, "synic"),
     (8, "stimer"),
     (9, "hcall_ipi"),
+    (10, "ex_processor_masks"),
     ])
 
 libxl_hdtype = Enumeration("hdtype", [
index e18274cc10e2b2d979c1be52ac712733ce92e965..86d272999d6778f9db7c88a73862ad89f9fa58e0 100644 (file)
@@ -366,6 +366,9 @@ static int hvm_set_viridian_features(libxl__gc *gc, uint32_t domid,
     if (libxl_bitmap_test(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_HCALL_IPI))
         mask |= HVMPV_hcall_ipi;
 
+    if (libxl_bitmap_test(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_EX_PROCESSOR_MASKS))
+        mask |= HVMPV_ex_processor_masks;
+
     if (mask != 0 &&
         xc_hvm_param_set(CTX->xch,
                          domid,