Veteran Linux kernel developer Ingo Molnar today released a series of Linux kernel patches designed to remove support for "obsolete" 32-bit CPUs. Specifically, if these patches are accepted, the Linux kernel will end support for older i486 CPUs as well as earlier i586 CPU models.

image-1.webp

Although rarely mentioned or used in modern Linux environments, with many distributions ending support for x86 32-bit hardware, the kernel still retains support for the older i486 processors introduced in the early 1990s. However, today's patch series will end support for i486 processors as well as earlier i586 processors. These kernel patches will remove support for CPUs lacking TSC and CX8/CMPXCHG8B functionality. This means that the minimum support for 32-bit processors in the upstream Linux kernel will be at the level of the original Pentium CPUs that supported CMPXCHG8B and timestamp counters (TSC). Even so, it would be surprising to hear someone booting a modern Linux kernel and modern software stack on their i586/P5 Pentium with patches just to drop CPU support for hardware older than that.

Ingo Molnar noted in the patch series that removing support for older i486 and early i586 processors will reduce the maintenance burden on kernel developers. Removing support for these older hardware will also reduce the kernel code by more than fourteen thousand lines. Molnar wrote in this morning's RFC patch series:

In the x86 architecture, we provide a variety of sophisticated hardware emulation tools on x86-32 to support those older 32-bit CPUs that few people use on modern cores. This compatibility issue can sometimes even lead to problems that require people to spend a lot of time solving, time that could be spent doing other things.

As Linus recently said:

">I really think it's time to drop support for i486."

> There is no reason for anyone to waste even a second of development effort on this problem. "

This series adds minimum kernel support, including TSC and CX8 (CMPXCHG8B) hardware support, removing 486 (and its derivatives) and early 586 (and its derivatives) support.

Doing this removes a lot of code:

80 files were modified, 38 codes were inserted (+), and 14104 codes were deleted (-).

Most of this is the math-emu/ library - but even without math-emu the simplification is quite significant:

33 files were modified, 38 codes were inserted (+), and 1081 codes were deleted (-). "