x86: Reduce verbosity of "PAT enabled" kernel message
authorRoland Dreier <rdreier@cisco.com>
Wed, 23 Sep 2009 22:35:35 +0000 (15:35 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 24 Sep 2009 09:35:19 +0000 (11:35 +0200)
On modern systems, the kernel prints the message

    x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106

once for every CPU.

This gets kind of ridiculous on huge systems; for example, on a
64-thread system I was lucky enough to get:

    dmesg| grep 'PAT enabled' | wc
         64     704    5174

There is already a BUG() if non-boot CPUs have PAT capabilities
that don't match the boot CPU, so just print the message on the
boot CPU. (I kept the print after the wrmsrl() that enables PAT,
so that the log output continues to mean that the system survived
enabling PAT on the boot CPU)

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
LKML-Reference: <adavdj92sso.fsf@cisco.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/pat.c

index 7257cf3decf9455ccb52f8f06bd28bc84a7f57ec..e78cd0ec2bcfa102d10af7ac7200af1506d00764 100644 (file)
@@ -81,6 +81,7 @@ enum {
 void pat_init(void)
 {
        u64 pat;
+       bool boot_cpu = !boot_pat_state;
 
        if (!pat_enabled)
                return;
@@ -122,8 +123,10 @@ void pat_init(void)
                rdmsrl(MSR_IA32_CR_PAT, boot_pat_state);
 
        wrmsrl(MSR_IA32_CR_PAT, pat);
-       printk(KERN_INFO "x86 PAT enabled: cpu %d, old 0x%Lx, new 0x%Lx\n",
-              smp_processor_id(), boot_pat_state, pat);
+
+       if (boot_cpu)
+               printk(KERN_INFO "x86 PAT enabled: cpu %d, old 0x%Lx, new 0x%Lx\n",
+                      smp_processor_id(), boot_pat_state, pat);
 }
 
 #undef PAT