x86: Limit the number of processor bootup messages
authorMike Travis <travis@sgi.com>
Fri, 11 Dec 2009 01:19:36 +0000 (17:19 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 11 Dec 2009 23:16:00 +0000 (15:16 -0800)
commit2eaad1fddd7450a48ad464229775f97fbfe8af36
tree8e100d13f9805962b43325d4cb8e452416572743
parent450b1e8dd10f41b5adad73f48ce8f6707d17c5c4
x86: Limit the number of processor bootup messages

When there are a large number of processors in a system, there
is an excessive amount of messages sent to the system console.
It's estimated that with 4096 processors in a system, and the
console baudrate set to 56K, the startup messages will take
about 84 minutes to clear the serial port.

This set of patches limits the number of repetitious messages
which contain no additional information.  Much of this information
is obtainable from the /proc and /sysfs.   Some of the messages
are also sent to the kernel log buffer as KERN_DEBUG messages so
dmesg can be used to examine more closely any details specific to
a problem.

The new cpu bootup sequence for system_state == SYSTEM_BOOTING:

Booting Node   0, Processors  #1 #2 #3 #4 #5 #6 #7 Ok.
Booting Node   1, Processors  #8 #9 #10 #11 #12 #13 #14 #15 Ok.
...
Booting Node   3, Processors  #56 #57 #58 #59 #60 #61 #62 #63 Ok.
Brought up 64 CPUs

After the system is running, a single line boot message is displayed
when CPU's are hotplugged on:

    Booting Node %d Processor %d APIC 0x%x

Status of the following lines:

    CPU: Physical Processor ID: printed once (for boot cpu)
    CPU: Processor Core ID: printed once (for boot cpu)
    CPU: Hyper-Threading is disabled printed once (for boot cpu)
    CPU: Thermal monitoring enabled printed once (for boot cpu)
    CPU %d/0x%x -> Node %d: removed
    CPU %d is now offline: only if system_state == RUNNING
    Initializing CPU#%d: KERN_DEBUG

Signed-off-by: Mike Travis <travis@sgi.com>
LKML-Reference: <4B219E28.8080601@sgi.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/kernel/cpu/addon_cpuid_features.c
arch/x86/kernel/cpu/amd.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/intel.c
arch/x86/kernel/cpu/mcheck/therm_throt.c
arch/x86/kernel/smpboot.c