• Vivek Goyal's avatar
    x86, boot: Wait for boot cpu to show up if nr_cpus limit is about to hit · 14cb6dcf
    Vivek Goyal authored
    nr_cpus allows one to specify number of possible cpus in the system.
    Current assumption seems to be that first cpu to show up is boot cpu
    and this assumption will be broken in kdump scenario where we can be
    booting on a non boot cpu with nr_cpus=1.
    
    It might happen that first cpu we parse is not the cpu we boot on and
    later we ignore boot cpu. Though code later seems to recognize this
    anomaly and forcibly sets boot cpu in physical cpu map with following
    warning.
    
    if (!physid_isset(hard_smp_processor_id(), phys_cpu_present_map)) {
            printk(KERN_WARNING
                    "weird, boot CPU (#%d) not listed by the BIOS.\n",
                    hard_smp_processor_id());
    
            physid_set(hard_smp_processor_id(), phys_cpu_present_map);
    }
    
    This patch waits for boot cpu to show up and starts ignoring the cpus
    once we have hit (nr_cpus - 1) number of cpus. So effectively we are
    reserving one slot out of nr_cpus for boot cpu explicitly.
    Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/20110708171926.GF2930@redhat.comSigned-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    14cb6dcf
apic.c 57 KB