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

[Xen-users] CPU hotplug x86 32bit


  • To: <xen-users@xxxxxxxxxxxxxxxxxxx>
  • From: "Alan Greenspan" <alan@xxxxxxxxxxx>
  • Date: Fri, 12 May 2006 13:48:13 -0400
  • Delivery-date: Fri, 12 May 2006 10:48:51 -0700
  • List-id: Xen user discussion <xen-users.lists.xensource.com>

Does anyone have any insight as to how CPU hotplug integrates with x86_32 and Xen?

Though the #VCPUs for a domU can be changed dynamically in Xen 3.0 using:

xm vcpu-set <domid> <VCPUs>

it appears that running x86_32 Linux domUs don't detect dynamically added VCPUs. The Linux CPU hotplug documentation seems to indicate that if the CPUs are not detected at boot time, they cannot be added later. IMHO, this stretches the definition of "hot pluggable".

As far as Xen goes, I can imagine use cases where a domU could start on a machine with say N real and N VCPUs, but if it outgrows those needs, it could be live migrated or saved/restored on a machine with > N real CPU capacity. After a restore or migration, bumping up the VCPUs to >N would allow the domU to make use of the additional CPUs on the target machine. Another use case is simply wanting to dynamically adjust the number of CPUs available to particular domUs on a large SMP host as application needs change.

It seems like the "additional_cpus" kernel option might do the trick to allow Linux to reserve slots for additional CPUs, but this is apparently not supported for x86_32 (see below). So I guess the question is - does dynamic VCPU modification NOT work such that VCPUs can be added and recognized by a running x86_32 Linux/domU? And a follow up question is whether it works on x86_64 using "additional_cpus". And then there is the question of Windows and how it reacts to dynamic changes in VCPUs.

Alan

[Not sure how current this hotplug info is ...]
+General Stuff about CPU Hotplug
+--------------------------------
+
+Command Line Switches
+---------------------
+maxcpus=n    Restrict boot time cpus to n. Say if you have 4 cpus, using
+             maxcpus=2 will only boot 2. You can choose to bring the
+             other cpus later online, read FAQ's for more info.
+
+additional_cpus*=n   Use this to limit hotpluggable cpus. This option sets
+           cpu_possible_map = cpu_present_map + additional_cpus
+
+(*) Option valid only for following architectures
+- x86_64, ia64, s390
+
+ia64 and x86_64 use the number of disabled local apics in ACPI tables MADT
+to determine the number of potentially hot-pluggable cpus. The implementation
+should only rely on this to count the #of cpus, but *MUST* not rely on the
+apicid values in those tables for disabled apics. In the event BIOS doesnt
+mark such hot-pluggable cpus as disabled entries, one could use this
+parameter "additional_cpus=x" to represent those cpus in the cpu_possible_map. +

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users


 


Rackspace

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