Linux Kernel Developers Discuss Dropping a Bunch of Old CPUs (phoronix.com) 93
Charlotte Web writes: With Linux 5.10 having shipped as the latest Long Term Support (LTS) release to be maintained for at least the next five years, a discussion has begun over dropping a number of old and obsolete CPU platform support currently found within the mainline kernel. For many of the architectures being considered for removal they haven't seen any new commits in years but as is the case once proposals are made for them to be removed there are often passionate users wanting the support to be kept.
yes please (Score:5, Insightful)
It's causing bloat and maintenance headaches, get rid of it! It's an old CPU, it can use an old kernel.
Re: (Score:2)
Yep. They don't need the latest and greatest kernels on 20-year old machines.
They won't have any new hardware and they probably can't run the newest software anyway. Stick with an older kernel that's proven and has been working all that time.
Re:yes please (Score:5, Informative)
I went and read the original mail, and was surprised to learn that most of these were added fairly recently.
* asm9260 -- added in 2014, no notable changes after 2015
* axxia -- added in 2014, no notable changes after 2015
* bcm/kona -- added in 2013, no notable changes after 2014
* digicolor -- added in 2014, no notable changes after 2015
* dove -- added in 2009, obsoleted by mach-mvebu in 2015
* efm32 -- added in 2011, first Cortex-M, no notable changes after 2013
* nspire -- added in 2013, no notable changes after 2015
* picoxcell -- added in 2011, already queued for removal
* prima2 -- added in 20111, no notable changes since 2015
* spear -- added in 2010, no notable changes since 2015
* tango -- added in 2015, sporadic changes until 2017, but abandoned
* u300 -- added in 2009, no notable changes since 2013
* vt8500 -- added in 2010, no notable changes since 2014
* zx --added in 2015 for both 32, 2017 for 64 bit, no notable changes
So I'm not sure the argument that you can't run modern kernels on these platforms really holds true. How much processing power does it take to run a bash shell anyhow?
Re: (Score:2)
can't run the newest software anyway
What is the newest software? Is Linux useless when it can't run Gnome and stream Netflix?
Re: (Score:2)
Re:yes please (Score:5, Informative)
Bloat doesn't have to be mean runtime bloat. It can also be code cruft/bloat. Reading, debugging and maintaining code that exists incurs cost, no matter how well organized/modularized/compartmentalized it is. And often you can significantly reduce the complexity of a module by dropping support for codepaths that never get hit in practice, significantly improving ease of maintenance and associated things like onboarding.
Re: (Score:2)
Refactoring doesn't fix problems like 'hey this CPU has a hardware bug and a feature doesn't work on it'. For a lot of systems you can add some form of software workaround and implement that under the HAL layer so nobody see it. But occasionally you hit a block where that just don't work well enough. Maybe the workaround is too slow and introduces a timing problem elsewhere or you're out of resources in terms of either the Silicon. If the HAL can't fully abstract away the problem, then that adds bloat to th
Re: (Score:2)
The problem is that most developers won't have any way of testing how changes will affect that old hardware and they can waste a lot of time over trying to keep it working.
Re: (Score:3)
Generally, if nobody touched a particular piece of kernel code for years then it is either completely perfect or completely unused. Determine which and act accordingly.
Re: (Score:1)
There's the third possibility that the code is buggy, but still very much used in some very specialized setting which only exercises a tiny subset of its functionality.
IMLE that's like 99.99% of cases. Linux is a general purpose OS, yet it's mostly used in very specialized, embedded settings.
I wish that people would give up on this "code cleanup" obsession, which most of time means "let's fuck up stuff we don't have a clue about".
Re: (Score:2)
You've got the wrong idea about how the kernel process works, and the wrong idea about the importance of code cleaning. Very wrong. Dangerously wrong. Hope you're not fucking anything up where you work.
Re: (Score:1)
Right, I was trying too hard to be kind.
Most of the "code cleaning & refactoring" pushers aren't able to understand & DEBUG old code at all (or write completely new code), but they have to do something to leave their mark and be in the "process".
Re: (Score:2)
Most of the "code cleaning & refactoring" pushers aren't able to understand & DEBUG old code at all (or write completely new code), but they have to do something to leave their mark and be in the "process".
What are you going on about? In the kernel community such a person would be exposed immediately and invited to get lost. People can't just send in their shitty code you know, it has to go through a maintainer. And maintainers that fuck up by letting shit through do not last long, nor do their checkins.
Or just raise your hand (Score:2)
The other solution, other than using an older kernel, would be to let Arnd know that you're using whichever CPU. That is if it's a CPU that can even support 16MB of RAM or so - several of these can't.
Re:yes please (Score:5, Insightful)
Yes true, but the reason of "no commits, so it must not be in use!" is not sound. Maybe it's good enough, it doesn't need a constant slew of commits because those CPUs aren't as broken as Intels? The attidute to just fork it because the users of the unpopular stuff can just support it themselves assumes that the users can support it themselves or have the amount of free time to do so. The Linux and open source philosophy is not merely "fix it yourself, if you can!", but it also includes "we support unpopular stuff that the big commercial companies won't", "we can make your old hardware work again", and "we don't treat our users like shit".
Re: (Score:2)
I think the argument is more "no commits, so it must not be actively maintained!" - and if it's not being maintained, then little or nothing will be lost if they drop it and let whoever IS still using that old hardware to also use the old kernels.
Also, it's not like there's a huge security risk leaving some of these architectures with kernels that are no longer updated. Sure you can get your 30+ year old whatever working agian, but you're probably not going to be using it for anything worth worrying about,
Re: (Score:2)
Even that logic is broken. No recent commits MAY mean not maintained, nobody cares OR it might mean it hasn't been broke in a long time, so nothing to fix.
I haven't performed maintenance on the light in my utility room in well over a year. I *DO* use that light daily. It just hasn't burned out since I replaced the light emitting heat globe with LEDs.
Re: (Score:2)
This is sort of the difference between FreeBSD, NetBSD, or OpenBSD in some ways. PC-centric versus traditional suport platforms versus platforms we think are interesting.
Having old stuff around is informative too. Otherwise you get newcomers complaining about having to use strange macros even though they're no-ops on Intel. Not so far fetched because I have heard similar sorts of complaints from various noobs in the past ("htonl is stupid!").
Re: (Score:2)
Re: (Score:2)
the reason of "no commits, so it must not be in use!" is not sound
I think the argument is more "no commits, so it must not be actively maintained!"
Which might also not be accurate. No commits might mean that it's darn near perfect if the hardware hasn't changed (and we're talking about older hardware).
Re: (Score:2)
So if someone wants their 32-bit Sparc support but also able get the latest USB drivers and network stack fixes... Maybe the real problem is that too much just got shoved into single code tree and that it wasn't made to be more modular from the start?
No need to fork - just tell Arnd "I'm using that" (Score:2)
> The attidute to just fork it
There's no need to fork anything. Just tell him "I'm still using a prima2" and it stays in.
Re: (Score:2)
Yes true, but the reason of "no commits, so it must not be in use!" is not sound.
But that's not the reason. They're using that as a search criteria to draw up a list of candidates for removal. It is entirely sound to look for things that haven't been updated for a long time to build up a list.
Given how much the kernel ABI changes, if they haven't been touched for 5 or more years, then chances are no one is developing them enough to notice any breaking ABI changes.
"we support unpopular stuff that the big commercial companies won't"
And they have been supporting it. They've been supporting it for 5 to 10 years without any problems.
"we don't treat our users like shit".
The companies that sup
Re: (Score:3)
The 5-10 years sounds like a long time. But... I am involved with issues at work where something drops support after 5 to 10 years and we're scrambling. 10 years may be a long time for a PC, but it's a short time for a lot of things, such as lifetime of embedded devices, certificates, licensed customer support, and so forth.
Re: (Score:2)
The kernel ABI doesn't change all that much. At least, at the architecture HAL level. The kernel needs very little of the HAL, and big changes to the HAL aren't very common because doing so will break every architecture.
The rest of the kernel ABI is hosted by the kernel itself - things like driver APIs are well above the architecture HA
Re: (Score:2)
Re: (Score:2)
Can these old CPUs actually boot recent kernels? Are they being used in machines with at least, say, 16 MB RAM to begin with?
Not much point in keeping those if they are only used in QEMU.
Re: (Score:2)
Re: (Score:3)
Looking at a lot of these CPUs they likely don't even have enough external address line pins to even get over 16MB or whatever of physical memory. It's also difficult to imagine how many Sun 3s are still being used. It's difficult to make the case for keeping most of this code maintained.
Re: (Score:2)
This is about dropping after the LTS release.
So users of these platforms have 5 years to figure it out, it seems pretty reasonable to me.
Re: (Score:2)
I am surprised that most of these CPUs seem to have MMUs, though. Perhaps most MMU-less CPUs have been already removed from Linux, hopefully.
Re: (Score:2)
- SPARC/Sun4M
Sparcstation-20 can have 4 sun4m cpus and 512mb ram.
- Alpha 2106x
- IA64 Merced (first-gen Itanium)
Both are 64bit cpus, available in servers supporting multiple gigabytes of ram. Both of these support PCI slots and/or USB so there is potential of connecting newly manufactured peripherals to them that wouldn't be supported by older kernels.
Older CPUs are being reimplemented in FPGAs, for instance look at the apollo-core which implements an m68k compatible processor for use as an accelerator or re
Re: (Score:2)
Re: (Score:2)
I'm not sure recent kernels can even boot with 4 MB RAM
NOOO, not Nspire!! (Score:1)
How will I cheat on my math exams now!?!?!?
Legacy forks? (Score:3)
If there is vocal minority intent on keeping something that is costing too much to maintain, compared to user base, could this legacy support not just be forked out? The idea being that the anyone intent on staying on a legacy CPU is free to maintain their own fork, without the cost applied to the main line?
Re: (Score:2)
If there is vocal minority intent on keeping something that is costing too much to maintain, compared to user base, could this legacy support not just be forked out?
Yes, but they'll still complain.
Re: (Score:2)
they don't even have evidence those platforms are still being used at all. those machines are truly relics and anyone still with one is not running a state of the art linux kernel because what is the point.
You ask "what is the point", as we sit here and discuss an operating (eco)system and culture that practically prides itself on supporting a lot of ancient pointless shit.
I'm willing to bet that most of the really obscure support that has been created in Linux and held on to for years now, started out the justification with "Yeah, I was bored one day, and since no one else had done it..."
Death is crucial to evolution (Score:2)
You ask "what is the point", as we sit here and discuss an operating (eco)system and culture that practically prides itself on supporting a lot of ancient pointless shit.
I'm willing to bet that most of the really obscure support that has been created in Linux and held on to for years now, started out the justification with "Yeah, I was bored one day, and since no one else had done it..."
It's definitely a good policy to allow that, random changes encourage innovation, but death is a crucial aspect to evolution working on any resource constrained system.
Re: (Score:2)
You ask "what is the point", as we sit here and discuss an operating (eco)system and culture that practically prides itself on supporting a lot of ancient pointless shit.
I'm willing to bet that most of the really obscure support that has been created in Linux and held on to for years now, started out the justification with "Yeah, I was bored one day, and since no one else had done it..."
It's definitely a good policy to allow that, random changes encourage innovation, but death is a crucial aspect to evolution working on any resource constrained system.
I would agree, so perhaps we could convince the *NIX heads to let go of 486SX support, but I kind of doubt it because "hey we might need that one day" is the other excuse that encourages "innovation". And hoarding. Lots of electronic hoarding. But not me, mind you. I only keep the important stuff.
Now if you'll excuse me, I'm trying to see if my Apple IIc will work on an HDTV...the stock 9" green screen is a tad too small, and I won't have room for the Sega Genesis with a monitor in the way...
Re: (Score:2)
Probably for the same reasons you want someone to maintain your food, water and sewage supply lines. And maybe your car, electrics, and host of other things too.
Why would you fork instead of raising your hand? (Score:2)
The message from Arnd is - if nobody speaks up to say they are still using one of these, I propose removing them. That's how it's normally done in the kernel. Why would you fork when you could just send Arnd an email letting him know you're still using a prima2?
I kept a particular legacy raid card in that way about ten years ago or so.
Re: (Score:2)
I hate it when developers whine about "maintenance costs". Most of the developers I've worked with will spend 6 months working on huge, complex features users never asked for or wanted, but will also refuse to spend a hour fixing an annoying glitch that's been around for years.
Sorry, but the "cost" of legacy support is usually nowhere near what people make it out to be.
Re: (Score:2)
I don't think you understand. People who do code for money, don't want to do uninteresting code unless they're getting paid. You will always find programmers that may want to work for months on something that interests them for free, but it doesn't mean they're willing to do maintenance coding at any price.
The "cost" of legacy support is what you need to pay in order to get someone competent to address the problem.
Re: (Score:2)
The problem with maintaining a feature that is used by 1% of the user base, for example, is that it may cost more time, effort and money to ensure there is no regression than it is worth. It could be argued that if the people using said legacy hardware see no interest in upgrading it, then do they really have the need for the latest and greatest version of the kernel?
For the complex features users never asked for or wanted, that is a different problem and in some cases it may make sense and in others it is
Gets popcorn (Score:4, Funny)
systemd anyone
Re: (Score:2)
points at sig :D
Re: (Score:2)
Re:Gets popcorn (Score:5, Funny)
finally a good technical thread this should be fun
But I can't figure out what this story has to do with Trump.
Re:Gets popcorn (Score:5, Funny)
He's old, bloated, and obsolete?
Re: (Score:2)
[ 0.00000] - Kernel Panic - not conceding: Fatal exception in module vote_count(306, 232)
Re: (Score:2)
systemd anyone
Oh, OK. Go ahead and drop it.
We need Poettering to get to work fixing all the Pulse Audio bugs anyway.
Re: (Score:2)
We need Poettering to get to work fixing all the Pulse Audio bugs anyway.
^ THIS. Please. Functional Bluetooth headsets with audio that doesn't like an old POTS phone would be nice.
486 (DX) too, is sad (Score:1)
> Furthermore there are some CPU platforms that are just very old and might be time to retire them: - 80486SX/DX
Hmm. Sad. My first router was a 486DX. Admittedly I didn't have enough old RAM modules for it to run a modern Linux kernel. But still.
Re:486 (DX) too, is sad (Score:5, Interesting)
My first linux installation was Debian 0.9 on a 486 AT bus personal computer. I downloaded it over a modem onto dozens of floppies. Getting the system to boot to console was easy but tedious. Getting X to run on a Hercules monochrome video adapter was hard *and* tedious.
I was originally intending to install 386BSD -- the idea of having a genuine Unix system I *owned* was attractive, because I could have the same operating system at home and at work. But at the time 386BSD was the defendant in a high profile intellectual property suit brought by Unix Systems Laboratories, and there was some doubt as to the future viability of the project. So I took a chance on this weird Linux thing which was kind of the next best thing. By the next year the 386BSD suit had been settled out of court, but I wasn't going to go through the stacks of floppy thing again now that I had everything running.
That lawsuit came at a critical moment for Linux. Linux had just come together with the first usable distros having appeared just a year or two earlier, but 386BSD was making a much more mature, *genuine* Unix available under similar free software terms. Were it not for the cloud that the lawsuit put over the future of 386BSD, I think a lot of early Linux adopters would have gone for BSD, and we'd all be working on BSD derivatives now instead of Linux. It really was a superior choice *at the time*.
Why would commits be a criterion? (Score:2)
A lack of commits in 5 years means it's DONE BEING PATCHED, not done being used.
It's not like hard-drive space is expensive. I don't contribute to Linux, but I have a hard time imagining the code is arranged so that supporting one CPU impacts code for supporting another. The build system and/or #ifdef and #include should keep it all properly separated, and if it doesn't then they need to look at fixing the way the kernel is built--I should be able to add support for FooCPU without changing anything other
Re: (Score:2)
roflcopter
supporting multiple hardware doesn't mean they all use isolated code .. a lot of code would be shared, but would have conditions/functionality/state that may only exist because it should support old stuff that never gets used in practice. But people working in those modules don't really have a way of testing those things. Sometimes its even hard to tell if something is ever hit or not.
That's an extremely simplistic view of modularization and decoupling you have. In practice, you aspire to somethin
Re: (Score:2)
The issue is going to arise as new functionality is introduced into the kernel. Sure, #ifdefs can hide modules that some architectures can't support, but improvements or additions to core kernel functionality are going to make supporting older architecture harder and harder. It becomes a major maintenance issue, and sooner or later some architectures are going to have to fall off the edge no matter what happens. It's why modern kernels, while they may support 32 bit architectures, won't support 80386 anymor
Re: (Score:2)
Because that's the info they have. Speak up (Score:2)
> Why would commits be a criterion
Because unless anyone speaks up and says "I'm using that CPU", Git activity is the information they have. Linux doesn't have telemetry informing Arnd about your hardware.
It's not a great indicator, but it's the indicator they have available of nobody says anything.
Re: (Score:2)
A lack of commits in 5 years means it's DONE BEING PATCHED, not done being used.
No, the linux developer is right, no commits means nobody uses it, which is why I propose removing boot loader support also and most of the functions within the standard library. Not a single change has been made to fabs() in decades... nobody uses that at all, obviously.
80486? (Score:2)
Re:80486? (Score:5, Informative)
Space systems. The 486 die size was large enough that radiation would rarely flip bits, to the end the Space Shuttle used 486DX CPUs in most of its computers. You can still buy them, they cost more now than they did when they were new.
Re: (Score:2)
Isn't there a 486ish CPU in every modern PC? The chipset or some other part.
486!?! (Score:1)
My first install, of version 0.99, was on a 486DX2/50 or something, on floppies, good old memory :)
Re: (Score:2)
Nooo! Not the heckin' floppy support!
Re: (Score:2)
Floppy support in Linux is seriously buggy. Several commands for the NEC/Intel series of floppy controllers for the PC are wrongly specified in the file fdreg.h, wherever in the source tree it is located now. And it's true for ALL kernel versions released at least during the last 25 years. Sometime in 2016, I noticed this and tried to contact the kernel developer responsible for the floppy code, but got no answer. Obviously virtually nobody uses this these days anyway, so I didn't persist.
Windows supports 32 bit more than Linux (Score:2)
Re: (Score:2)
yeah but try running that win 10 on legacy hardware, hahaha.
not relevant argument to dropping dinosaur cpu
I have a some sympathy for old cpu enthusiasts (Score:2)
LTT (Score:1)
Vortex86MX should be the bare minimum X86-32 (Score:2)
Up to this day, that processor, based on the mP6 from Rise Technologies (acquired by SiS and Licensed by DM&P) is used in PC-104 enbeded computers, as wel as Single Board Computers.
That thing has something close to the 686 architecture (if memory serves, it lacks one or two instructions only, CMOV being one). And includes some SIMD (in the form of MMX)
This thing was able to run vanilla Win7 and 10 embedded.
If DM&P did some small investments to develop it, it could probably run vanilla Win10 as well.
How to count old CPUs in use? (Score:2)
How many thousand or hundred CPUin use (and under what circumstances) justifies maintaining support and how best to count them?
List of candidate CPUs (Score:3)
There are a heap of ARM-based chips that I've never encountered.
The other CPUs that they're thinking of dropping are listed below. These are seriously old CPUs. Dropping support for them in future kernels doesn't mean that current kernels won't continue to run. Would anyone still running linux on a PlayStation, or a 486 or an M68k platform seriously be considering upgrading to the latest kernel anyway? Anyone running on such an old platform will have a distro that works, and they will stick with it as upgrading is likely to break other things in unusual and exciting ways.
Here are the platforms - of the ones that I recognise by name, they are mostly from the early and mid 90's.
- H8300
- C6X
- SPARC/Sun4M
- PowerPC/CELL (separate from the PlayStation 3 code)
- PowerPC/CHRP
- PowerPC/AmigaOne
- PowerPC/Maple
- M68K for Apollo, HP300, Sun3, and Q40.
- MIPS JAZZ
- MIPS Cobalt
- 80486SX/DX
- Alpha 2106x
- IA64 Merced (first-gen Itanium)
- MIPS R3000/TX39xx
- Select older PowerPC models past the original 601 that was recently removed.
- SuperH SH-2.
- 68000/68328 (Dragonball)
From the LKML (Score:5, Informative)
For more background info, and details on the CPU architectures, there's a very informative post on the LKML:
https://lore.kernel.org/lkml/C... [kernel.org]
Re: (Score:2)
Thank you. As usual, the headline is quite inflammatory. The reality of the situation is much more ... relaxed.
Older Versions (Score:2)
I'll be OK (Score:2)
My system is old. But I don't think the kernel devs will dro .... [NO CARRIER]
Why donâ(TM)t they... (Score:1)
Leave them in the repository and download/build... whatever needs to happen, at install time?
80486? (Score:2)
I just love the title of the topic on the LKML (Score:2)
The discussion over dropping old CPU support was started Friday within Old platforms: bring out your dead.
Arnd Bergmann: Bring out your dead!
Linux Developer: Here's one.
Arnd Bergmann: Nine pence.
Obsolete CPU: I'm not dead!
Arnd Bergmann: What?
Linux Developer: Nothing. Here's your nine pence.
Obsolete CPU: I'm not dead!
Arnd Bergmann: 'Ere. He says he's not dead!
Linux Developer: Yes, he is.
Obsolete CPU: I'm not!
Arnd Bergmann: He isn't?
Linux Developer: Well, he will be soon. He's very ill.
Obsolete CPU: I'm getting better!
Linux Developer: No, you're not. You'll be stone dead in a moment.
Arnd Bergmann: Oh, I can't tak
Re: (Score:2)
Where are mod point when you need one? love this sketch.