| Andi Kleen | 7eb903f | 2006-01-11 22:42:39 +0100 | [diff] [blame] | 1 | Firmware support for CPU hotplug under Linux/x86-64 | 
 | 2 | --------------------------------------------------- | 
 | 3 |  | 
 | 4 | Linux/x86-64 supports CPU hotplug now. For various reasons Linux wants to | 
| Randy Dunlap | 57d3077 | 2007-02-13 13:26:23 +0100 | [diff] [blame] | 5 | know in advance of boot time the maximum number of CPUs that could be plugged | 
| Andi Kleen | 7eb903f | 2006-01-11 22:42:39 +0100 | [diff] [blame] | 6 | into the system. ACPI 3.0 currently has no official way to supply | 
 | 7 | this information from the firmware to the operating system. | 
 | 8 |  | 
 | 9 | In ACPI each CPU needs an LAPIC object in the MADT table (5.2.11.5 in the | 
 | 10 | ACPI 3.0 specification).  ACPI already has the concept of disabled LAPIC | 
 | 11 | objects by setting the Enabled bit in the LAPIC object to zero. | 
 | 12 |  | 
 | 13 | For CPU hotplug Linux/x86-64 expects now that any possible future hotpluggable | 
 | 14 | CPU is already available in the MADT. If the CPU is not available yet | 
 | 15 | it should have its LAPIC Enabled bit set to 0. Linux will use the number | 
 | 16 | of disabled LAPICs to compute the maximum number of future CPUs. | 
 | 17 |  | 
 | 18 | In the worst case the user can overwrite this choice using a command line | 
 | 19 | option (additional_cpus=...), but it is recommended to supply the correct | 
 | 20 | number (or a reasonable approximation of it, with erring towards more not less) | 
 | 21 | in the MADT to avoid manual configuration. |