Page MenuHomeFreeBSD

Drop i486 from the default GENERIC i386 kernel.
ClosedPublic

Authored by pfg on Mar 3 2017, 9:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Mar 22, 11:13 PM
Unknown Object (File)
Fri, Mar 22, 10:18 AM
Unknown Object (File)
Feb 23 2024, 10:45 PM
Unknown Object (File)
Feb 9 2024, 11:18 PM
Unknown Object (File)
Dec 3 2023, 1:56 PM
Unknown Object (File)
Nov 19 2023, 12:53 PM
Unknown Object (File)
Nov 19 2023, 12:47 PM
Unknown Object (File)
Nov 17 2023, 7:01 AM
Subscribers

Details

Summary

Both I486_CPU and I586_CPU had been deprectated and removed from
the default GENERIC configurationbut r205336 brought them back apparently
to avoid requiring SSE in the kernel.

Removing just I486_CPU seems consistent enough at this time: we don't
support any processor without a FPU and 80486 production was stopped by
Intel on September 2007.

The PC-98 arch, which frequently involved i486 CPUs is also now gone.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 7884
Build 8024: arc lint + arc unit

Event Timeline

pfg retitled this revision from to Drop i486 from the default GENERIC i386 kernel..
pfg updated this object.
pfg edited the test plan for this revision. (Show Details)
pfg added reviewers: delphij, imp.
imp edited edge metadata.

This is fine, though the commit message could use some work.

Why not remove I586_CPU also?

This revision is now accepted and ready to land.Mar 3 2017, 10:25 PM
In D9879#204076, @imp wrote:

This is fine, though the commit message could use some work.

Why not remove I586_CPU also?

The commit reverted by r205336, had indeed removed both.
I am unsure what caused both I486 and I586 to come back, the log for r205336, is unclear but mentions something about SSE instructions. I guess some old machines server as routers in a basement may still be using a real Pentium without SSE, and who knows if AMD ever licensed some of the Intel extensions.

In D9879#204076, @imp wrote:

This is fine, though the commit message could use some work.

Why not remove I586_CPU also?

According to an old posting:, removing i586 actually reduces performance:

https://lists.freebsd.org/pipermail/freebsd-questions/2009-January/190568.html

Committed as r314669 but I missed the "Differential Revision" reference.

It's no longer true since r209460 (for ~6.5 years).
Right now I586_CPU is mostly about 0xf00f bug:

head/sys/i386/i386/machdep.c: 0xf00f bug
head/sys/i386/i386/initcpu.c: Special initialisation for Rise Technology MP6, WinChip C6/2/2A/2B/3, Transmeta (also with I686_CPU)
head/sys/i386/i386/initcpu.c: enanles write allocation for k5/k6/k6-2 AMD cpus if CPU_WT_ALLOC enabled (disabled by default)
head/sys/i386/i386/mp_machdep.c: 0xf00f bug
head/sys/i386/i386/trap.c: 0xf00f bug
head/sys/i386/include/md_var.h: 0xf00f bug
head/sys/i386/isa/prof_machdep.c: Use tsc for profiling if I586_CPU or I686_CPU defined
head/sys/x86/x86/identcpu.c: Panic if cpu class 586 found and I586_CPU undefined
head/sys/x86/x86/identcpu.c: Enable 0xf00f bug workaround
head/sys/crypto/blowfish/arch/i386/bf_enc.S: Use bf_enc_586.S if I486_CPU or I586_CPU defined, bf_enc_686.S otherwise