Navegación de entradas

Removing Support for Dead Hardware

Arnd Bergmann submitted a patch to remove the Linux ports for a variety of
architectures, including blackfin, cris,
frv, m32r, metag,
mn10300, score
and tile. To do this, he worked directly with the former maintainers of
each port to make sure the code removal was done right and didn't break
anything in the mainline kernel or anywhere else.

The bottom line was that no one used those architectures anymore. He offered
his analysis of why this had happened, saying:

It seems that while the
eight architectures are extremely different, they all suffered the same
fate: There was one company in charge of an SoC line, a CPU
microarchitecture and a software ecosystem, which was more costly than
licensing newer off-the-shelf CPU cores from a third party (typically ARM,
MIPS, or RISC-V). It seems that all the SoC product lines are still around,
but have not used the custom CPU architectures for several years at this
point. In contrast, CPU instruction sets that remain popular and have
actively maintained kernel ports tend to all be used across multiple
licensees.

Linus Torvalds had no objection to ripping those architectures out of the
kernel, but he did say, "I'd like to see that each architecture removal is
independent of the others, so that if somebody wants to resurrect any
particular architecture, he/she can do so with a revert."

Linus pulled the patch into the main kernel tree and noted with glee that
it took a half-million lines of code out of the kernel.

Linus was not the only one who wanted to ensure the possibility of easily
resurrecting those architectures. Geert Uytterhoeven wanted to know exactly
what would be required, since he had an interest in the
formerly removed and later resurrected arch/h8300 architecture, currently
still in the kernel and going strong. And he pointed out, "In reality, a
resurrection may not be implemented as a pure revert, but as the addition
of a new architecture, implemented using modern features."

To which Pavel Machek complained, "By insisting on new features instead of
pure revert + incremental updates, you pretty much make sure resurrection
will not be possible."

But Arnd pointed out, "now that the other architectures are gone, a lot of
changes can be done more easily that will be incompatible with a pure
revert, so the more time passes, the harder it will get to do that."

And he added, "Some of the architectures (e.g. tile or cris) have been kept
up to date, but others had already bitrotted to the point where they were
unlikely to work on any real hardware for many releases, but a revert could
still be used as a starting point in theory."