Re: Future of 32-bit platforms (including i386)

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 24 May 2023 20:41:58 UTC
On 5/23/23 8:59 PM, Charlie Li wrote:
> Tomek CEDRO wrote:
>> On Wed, May 24, 2023 at 1:47 AM John Baldwin wrote:
>>> On 4/27/23 10:19 AM, John Baldwin wrote:
>>>> For 13.0, i386 was demoted from Tier 1 to Tier 2.  In the announcement
>>>> of this for 13.0, the project committed to an update on i386's future
>>>> around the time of 14.0.  The announcement at the time suggested that
>>>> i386 would be supported less in 14.x than in 13.x.
>>>>
>>>> My proposal is that for 14.x we treat i386 like any other Tier 2
>>>> platform.  That is, release images and packages would only be provided
>>>> on a best-effort basis, and we would not guarantee providing them.  I
>>>> think we should also stop shipping binary updates for the base system
>>>> (freebsd-update) for 14.x for i386.
>>>>
>>>> A larger question is what to do about 32-bit platforms moving forward.
>>>> My proposal for powerpc, i386, and armv[67] is that we say publicly
>>>> that we anticipate not supporting them in 15.  That is, that we may
>>>> remove them outright from the tree, or we may leave them in the tree,
>>>> but we do not plan on building packages or release images.  Another
>>>> option to consider for 32-bit platforms perhaps in 15 is to remove
>>>> kernel support and only retain the ability to build userland.  The
>>>> goal of saying this now-ish (or about the time 14.0 is going to ship)
>>>> would be to give time for users and developers to respond in the
>>>> window between 14.0 and 15.0 so we can evaluate those responses as an
>>>> input into the final decision for 15.
>>>
>>> We discussed this topic during the 15.0 developer summit and the consensus
>>> among the folks present (which is only a subset of our community), is
>>> that there is still interest in supporting armv7 kernels in 15.0, but not
>>> kernels for other platforms.  In addition, no one expressed a need for
>>> full 32-bit world support for i386 and powerpc, only for compat32 support
>>> in the kernel, and lib32 (cc -m32) support in userland.
>>>
>>> One question for this is if we think we will have sufficient developer
>>> resources to maintain armv7 kernels for the life of stable/15.  We can
>>> largely punt on the final decision for that until close to the release of
>>> 15.0.  I think for what we announce for 14.0 we can still say that we
>>> are generally planning to remove 32-bit kernel and world support in 15.0,
>>> but may consider keeping armv7.
>>
>> I always think in terms of "Zombie Apocalypse"^TM on what to get
>> myself into.. if its not going to work in that kind of situation then
>> its not worth the time :-) :-)
>>
>> Will "lack of support" mean no binaries provided or removal of the
>> source code so FreeBSD is non-existent anymore on those platforms?
>>
> Both. The actual code would be removed, as there exists a
> not-insignificant cost on development of contemporary platform support
> (needing to keep i386 around significantly hinders amd64 development,
> for instance).

I'm not sure it's accurate to say that i386 specifically hinders amd64,
it's more that 32-bit platforms in general are more limited and we
already have some features (e.g. KTLS) that only work on 64-bit platforms.
That is only going to become more true over time.  We also have a finite
set of developer resources, and it's best to concentrate those on modern
commodity platforms.

> I had a much longer passage on this subject that was slated to be
> written and posted here prior to the devsummit, but the tl;dr was
> understood at the devsummit. Basically, the proposed general removal of
> 32-bit support is unfortunate but probably technically necessary.
> Investigations of certain use cases, like Wine, will need to happen to
> see how much 32-bit userland support need to remain whilst running on
> 64-bit kernel. There continue to exist production armv7 boards that
> enjoy long-term support, so removing kernel support would not only be a
> bad idea, but those who need that support the most are the least
> equipped to help on our end (unless some individuals can be nudged to
> learn).

Just because boards exist and users are interested is not sufficient reason
to keep a platform alone.  We also have to have sufficient developer
interest to maintain platforms in the tree.  What we learned at the summit
is there is at least still some desire for 32-bit arm systems.

-- 
John Baldwin