Debian debates amending architecture support stratagem
The Linux kernel supports a large number of architectures. Not all of those are supported by Linux distributions, but Debian does support many of them, officially or unofficially. On October 26, Bastian Blank opened a discussion about the minimum version of these architectures that Debian should support: in particular, raising the de-facto minimum versions in the next Debian release ("forky"). Thread participants were generally in favor of keeping support for older architecture variants, but didn't reach a firm conclusion.
Blank noted that Debian doesn't currently have a policy for which architecture versions
should be supported. Three architectures do specify a minimum version of GCC,
which in turn implies some limits on architecture versions:
Arm CPUs must be armv7-a+fp or newer, 32-bit x86 CPUs
must be i686 or newer, and s390 CPUs must be z196 or newer. (Version z196 is
followed, naturally, by z114, then by zEC12, zBC12, and z13. Since z13, IBM
has continued counting with the same numbers that everyone else uses.)
These architectures are all fairly old. Arm version 7 dates from 1993, with the
last processors being sold in 2001. ARM7 was from 1993, but
ARMv7 is from 2005, and CPUs are still being sold.
Starting in Debian 14 ("forky"), Blank proposed that 64-bit x86 CPUs should require version x86-64-v2, PowerPC CPUs should require power9, and s390x CPUs should require z15. x86-64-v2, in particular, features wider atomic compare-and-exchange operations and more single-instruction multiple-data (SIMD) instructions.
As a general guidance I would like to aim for a ten to 15 years support range at release time. The cutoff in respect to the expected 2027 release date of Forky would therefor be 2012 to 2017. More time is given for widely used architectures, less for more specialized ones."
This recommendation was seemingly motivated by matching the composition of Debian's build infrastructure, which doesn't have any PowerPC machines older than power9, or s390x machines older than z16. If Blank's proposal were adopted, the distribution could potentially drop support for older architecture versions in 2030, which would be the end of Debian 13 ("trixie") long-term support.
Marco d'Itri
thought that
retiring architecture variants after 15 years from release was
reasonable: "Debian's purpose is not to enable retrocomputing
projects.
" That didn't sit will with all members of the list, however.
Jan-Daniel Kaplanski
objected,
noting that the ability to use Debian with a wide variety of hardware was one of the
appealing properties of the distribution. Even if a 15-year rule were adopted,
however, it should be from the last year the CPU was available to buy: PowerPC
version 8 CPUs were still sold last year, he said. Kaplanski would want them
supported through 2039. Romain Dolbeau
didn't
think that was enough:
Debian is (at least up to now) the Linux distribution one could rely on to support hardware as long as its actual life without forcing users to upgrade. I have ~2007 (Penryn) systems still in use that were deployed with Debian when new, and I'm sure I'm not the only one. If it ain't broke, don't fix it, just upgrade Debian :-)
Marc Haber pointed out that Debian depends on kernel and toolchain support for its different architectures; he then clarified that his concern was about upstream support timelines. If the kernel or the toolchain did drop support for an older version of an architecture, it might do so with relatively little notice compared to Debian's long-term support timelines. He thought that Blank had a point in wanting to establish a policy years in advance of any potential deprecation, so that people could plan around it. Diederik de Haas opined that the kernel would not drop support without an announcement far in advance, and said that all of the concerns that had been raised in favor of Blank's proposal so far were hypothetical.
Simon Richter thought that the decision should be based on potential performance improvements, not just how old an architecture is. SIMD instructions (and other specialized instructions) can be noticeably faster for some programs, although they don't help with programs that spend most of their time waiting on I/O. He also suggested that it would be nice to have a way to automatically migrate users to an unofficial Debian port if the official releases raise their minimum supported versions.
John Klos
asked
why any change was needed — if it was intended to reduce the amount of work for
Debian maintainers, what specific work would be avoided?
Peter Green
replied
that architecture improvements sometimes "eliminate a significant source of
bullshit
", and gave the example of moving from x87 to sse2 floating point
instructions on x86_64. On the other hand, he didn't think that Blank's proposed updates
really gained that much: the newer versions that the proposal would mandate
don't actually contain significant architectural changes.
Ultimately, the discussion did not result in any specific decision being made. It seems likely that Debian will maintain its current level of architecture support for forky, but in the absence of a specific policy, the debate will certainly arise again. The Linux community is, in some ways, a tug of war between different interests: some people want the maximum performance possible from their software, some people want to continue using the hardware they have available, and everyone has problems with getting enough time and energy to work on these things. How those competing interests eventually shake out — and whether people are eventually able to find a compromise position — comes down to who shows up to do the work.
