cvs commit: src/sys/i386/i386 machdep.c

John Baldwin jhb at FreeBSD.org
Mon Nov 3 08:28:55 PST 2003


On 01-Nov-2003 Andy Farkas wrote:
> John Baldwin wrote:
>> On 31-Oct-2003 Bruce Evans wrote:
>> > On Fri, 31 Oct 2003, John Baldwin wrote:
>> >
>> >>
>> >> On 31-Oct-2003 John Baldwin wrote:
>> >> > jhb         2003/10/31 06:24:29 PST
>> >> >
>> >> >   FreeBSD src repository
>> >> >
>> >> >   Modified files:
>> >> >     sys/i386/i386        machdep.c
>> >> >   Log:
>> >> >   - Finish externing of r_idt in the f00f hack code.
>> >> >   - Miscellaneous style fixes in the f00f hack code and some nearby code.
>> >> >
>> >> >   Submitted by:   bde
>> >
>> > Thanks.
>> >
>> >> This might actually fix SMP on Pentium's since the AP's will not
>> >> point to the correct IDT without this fix.
>> >
>> > Have the been any reports of it being broken?  We configure the f00f hack
>> > code on all PentiumIs (aka P5s) including ones without the f00f bug, so
>> > the r_idt bug probably breaks all SMP systems with such CPUs.
>>
>> Actually, since this still used the global r_idt in the SMP case, I'm
>> not sure it was really broken.  However, to the best of my knowledge,
>> SMP currently doesn't owrk on PentiumI systems right now at least in
>> current and possibly in stable as well.
> 
> SMP on Pentium Broken?  My current dmesg.boot says:
> 
> %%%
> ...
> FreeBSD 5.1-CURRENT #1: Wed Oct 22 10:44:15 EST 2003
>     root at team2.af.speednet.com.au:/usr/obj/usr/src/sys/TEAM2
> Preloaded elf kernel "/boot/kernel/kernel" at 0xc0712000.
> Timecounter "i8254" frequency 1193182 Hz quality 0
> CPU: Pentium/P54C (132.00-MHz 586-class CPU)
>   Origin = "GenuineIntel"  Id = 0x52c  Stepping = 12
>   Features=0x3bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,APIC>
> real memory  = 100663296 (96 MB)
> avail memory = 92332032 (88 MB)
> APIC_IO: MP table broken: 8259->APIC entry missing!
> Programming 16 pins in IOAPIC #0
> EISA INTCONTROL = 00004400
> IOAPIC #0 intpin 2 -> irq 0
> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>  cpu0 (BSP): apic id:  0, version: 0x00030010, at 0xfee00000
>  cpu1 (AP):  apic id:  1, version: 0x00030010, at 0xfee00000
>  io0 (APIC): apic id:  2, version: 0x000f0011, at 0xfec00000
> Intel Pentium detected, installing workaround for F00F bug
> ...
> %%%
> 
> team2# uptime
> 12:54PM  up 1 day,  3:21, 3 users, load averages: 2.58, 3.22, 4.22
> 
> 
> I am building world right now to see if latest ULE still locks up..

Hah.  Terry has long complained that SMP has worked on PentiumI's for
ages.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the cvs-all mailing list