kernel/lapic: Remove the special handling for VMware w/ 1 CPU again.
authorSascha Wildner <saw@online.de>
Tue, 24 May 2011 21:30:30 +0000 (23:30 +0200)
committerSascha Wildner <saw@online.de>
Tue, 24 May 2011 21:30:30 +0000 (23:30 +0200)
I've done some further testing here and it looks like I was on the
wrong path when I reported it to sephe.

The problem seems to be a local one. It fails occasionally (SMP kernel
or not) when the ISO is on my file server, but always succeeds when
the ISO is on the disk of the box running VMware.

sys/cpu/i386/include/specialreg.h
sys/cpu/x86_64/include/specialreg.h
sys/platform/pc32/apic/lapic.c
sys/platform/pc64/apic/lapic.c

index 5df9088..1cafc55 100644 (file)
 #define        CPUID2_X2APIC   0x00200000
 #define        CPUID2_POPCNT   0x00800000
 #define        CPUID2_AESNI    0x02000000
-#define        CPUID2_VMM      0x80000000
 
 /*
  * Important bits in the AMD extended cpuid flags
index b47565d..c27422f 100644 (file)
 #define        CPUID2_X2APIC   0x00200000
 #define        CPUID2_POPCNT   0x00800000
 #define        CPUID2_AESNI    0x02000000
-#define        CPUID2_VMM      0x80000000
 
 /*
  * Important bits in the AMD extended cpuid flags
index ed1ba2e..236c29b 100644 (file)
@@ -33,7 +33,6 @@
 #include <machine/globaldata.h>
 #include <machine/smp.h>
 #include <machine/cputypes.h>
-#include <machine/specialreg.h>
 #include <machine/md_var.h>
 #include <machine/pmap.h>
 #include <machine_base/apic/lapic.h>
@@ -676,18 +675,6 @@ lapic_config(void)
                mp_naps = ap_max;
        }
 
-       if ((cpu_feature2 & CPUID2_VMM) && mp_naps == 0) {
-               /*
-                * XXX
-                * Special hack for vmware.  It looks like that
-                * if only one CPU is configured (mp_naps == 0)
-                * in vmware (cpu_feature2 & CPUID2_VMM),
-                * then LAPIC will not work at all.
-                */
-               kprintf("LAPIC: single CPU virtual machine detected, "
-                       "disable LAPIC\n");
-               return ENXIO;
-       }
        return 0;
 }
 
index 06bce1c..2ba3e87 100644 (file)
@@ -38,7 +38,6 @@
 #include <machine_base/apic/ioapic.h>
 #include <machine_base/apic/ioapic_abi.h>
 #include <machine/segments.h>
-#include <machine/specialreg.h>
 #include <sys/thread2.h>
 
 #include <machine/intr_machdep.h>
@@ -743,18 +742,6 @@ lapic_config(void)
                mp_naps = ap_max;
        }
 
-       if ((cpu_feature2 & CPUID2_VMM) && mp_naps == 0) {
-               /*
-                * XXX
-                * Special hack for vmware.  It looks like that
-                * if only one CPU is configured (mp_naps == 0)
-                * in vmware (cpu_feature2 & CPUID2_VMM),
-                * then LAPIC will not work at all.
-                */
-               kprintf("LAPIC: single CPU virtual machine detected, "
-                       "disable LAPIC\n");
-               return ENXIO;
-       }
        return 0;
 }