[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH for-4.10.0-shim-comet] x86/guest: use the vcpu_info area from shared_info



If using less than 32 vCPUs (XEN_LEGACY_MAX_VCPUS).

This is a workaround that should allow to boot the shim on hypervisors
without commit "x86/upcall: inject a spurious event after setting
upcall vector" as long as less than 32 vCPUs are assigned to the
shim.

Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Cc: George Dunlap <george.dunlap@xxxxxxxxxx>
---
ONLY apply to the 4.10.0-shim-comet branch. Long term we don't want to
carry this patch since it would prevent the vcpu_info mapping code
from being tested unless a shim with > 32 vCPUs is created, which
doesn't seem very common.
---
 xen/arch/x86/guest/xen.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/guest/xen.c b/xen/arch/x86/guest/xen.c
index 2a5554ab26..ed8b8c8c7b 100644
--- a/xen/arch/x86/guest/xen.c
+++ b/xen/arch/x86/guest/xen.c
@@ -257,7 +257,8 @@ void __init hypervisor_setup(void)
     map_shared_info();
 
     set_vcpu_id();
-    vcpu_info = xzalloc_array(struct vcpu_info, nr_cpu_ids);
+    if ( nr_cpu_ids > XEN_LEGACY_MAX_VCPUS )
+        vcpu_info = xzalloc_array(struct vcpu_info, nr_cpu_ids);
     if ( map_vcpuinfo() )
     {
         xfree(vcpu_info);
-- 
2.15.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.