x86: detect FS/GS MSRs
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 22 Apr 2013 18:30:27 +0000 (11:30 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 24 Apr 2013 22:19:09 +0000 (15:19 -0700)
On some machines (like the Nehalem), there are MSRs for the kernel to
access FS and GS base.  Not to be confused with the even newer support
for userspace access to those MSRs via {RD,WR}{FS,GS}BASE instructions.

kern/arch/i686/cpuinfo.c

index 60cddec..341e0c3 100644 (file)
@@ -133,6 +133,7 @@ void print_cpuinfo(void)
                printk("RDTSCP supported\n");
        else
                printk("RDTSCP not supported: don't trust detailed measurements\n");
                printk("RDTSCP supported\n");
        else
                printk("RDTSCP not supported: don't trust detailed measurements\n");
+       printk("FS/GS MSRs %ssupported\n", edx & (1 << 29) ? "" : "not ");
        msr_val = read_msr(IA32_MISC_ENABLE);
        /* we want this to be not set for cpuid.6h to work. */
        if (msr_val & (1 << 22))
        msr_val = read_msr(IA32_MISC_ENABLE);
        /* we want this to be not set for cpuid.6h to work. */
        if (msr_val & (1 << 22))