On Thu, Sep 01, 2005 at 10:45:10AM +0200, Andi Kleen wrote: > Hallo Natalie, > > On Wednesday 31 August 2005 14:13, Natalie.Protasevich@xxxxxxxxxx wrote: > > Current IA32 CPU hotplug code doesn't allow bringing up processors that > > were not present in the boot configuration. To make existing hot plug > > facility more practical for physical hot plug, possible processors should > > be encountered during boot for potentual hot add/replace/remove. On ES7000, > > ACPI marks all the sockets that are empty or not assigned to the > > partitionas as "disabled". > > Good idea. In fact I always hated the behaviour of the existing > hotplug code that assumes all possible CPUs can be hotplugged. > It would be much nicer to be told be the firmware what CPUs > are hotpluggable. It would be great if all ia32/x86-64 hotplug capable > BIOS behaved like your. > Andi, you are getting mixed up with software only ability to offline with hardware eject capability. ACPI indicates ability to hotplug by the presence of _EJD in the appropriate scope of the object. So ACPI does have ability to do what you mention above precicely, but the entire namespace is not known upfront since some could be dynamically loaded. Which is why we need to show the entire NR_CPUS as hotpluggable. Possibly we can keep cpu_possible_map as NR_CPUS only when support for PHYSICAL_CPU_HOTPLUG is present, otherwise we can keep it cloned as cpu_present_map. (we dont have a generic PHYSICAL hotplug CONFIG option today) What CONFIG_HOTPLUG_CPU=y indicates is ability to offline a processor from the kernel. It DOES NOT indicate physical hotpluggablity. So we dont need any hardware support (apart arch/kernel support) for this to work. Support for physical hotplug is indicated via CONFIG_ACPI_HOTPLUG_CPU. Be aware that suspend/resume folks using CPU hotplug to offline CPUS except BSP need just the kernel support to offline. BIOS has nothing to do with being able to offline a CPU (preferably called as soft-removal). Cheers, ashok