[PATCH 0/2] Deprecate support for 32-bit x86 and arm hosts

We're struggling quite badly with our CI minutes on the shared gitlab runners, so we urgently need to think of ways to cut down our supported build and target environments. qemu-system-i386 and qemu-system-arm are not really required anymore, since nobody uses KVM on the corresponding systems for production anymore, and the -x86_64 and -arch64 variants are a proper superset of those binaries. So it's time to deprecate them and the corresponding 32-bit host environments now. This is a follow-up patch series from the previous discussion here: https://lore.kernel.org/qemu-devel/20230130114428.1297295-1-thuth@redhat.com... where people still mentioned that there is still interest in certain support for 32-bit host hardware. But as far as I could see, there is no real need for 32-bit host support for system emulation on x86 and arm anymore, so it should be fine if we drop these host environments now (these are also the two architectures that contribute the most to the long test times in our CI, so we would benefit a lot by dropping those). Thomas Huth (2): docs/about: Deprecate 32-bit x86 hosts and qemu-system-i386 docs/about: Deprecate 32-bit arm hosts and qemu-system-arm docs/about/deprecated.rst | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) -- 2.31.1

Hardly anybody still uses 32-bit x86 hosts today, so we should start deprecating them to finally have less test efforts. With regards to 32-bit KVM support in the x86 Linux kernel, the developers confirmed that they do not need a recent qemu-system-i386 binary here: https://lore.kernel.org/kvm/Y%2ffkTs5ajFy0hP1U@google.com/ Signed-off-by: Thomas Huth <thuth@redhat.com> --- docs/about/deprecated.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 15084f7bea..98517f5187 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -196,6 +196,19 @@ CI coverage support may bitrot away before the deprecation process completes. The little endian variants of MIPS (both 32 and 64 bit) are still a supported host architecture. +32-bit x86 hosts and ``qemu-system-i386`` (since 8.0) +''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Testing 32-bit x86 host OS support takes a lot of precious time during the +QEMU contiguous integration tests, and considering that most OS vendors +stopped shipping 32-bit variants of their x86 OS distributions and most +x86 hardware from the past >10 years is capable of 64-bit, keeping the +32-bit support alive is an inadequate burden for the QEMU project. Thus +QEMU will soon drop the support for 32-bit x86 host systems and the +``qemu-system-i386`` binary. Use ``qemu-system-x86_64`` (which is a proper +superset of ``qemu-system-i386``) on a 64-bit host machine instead. + + QEMU API (QAPI) events ---------------------- -- 2.31.1

On Mon, Feb 27, 2023 at 12:10:49PM +0100, Thomas Huth wrote:
Hardly anybody still uses 32-bit x86 hosts today, so we should start deprecating them to finally have less test efforts. With regards to 32-bit KVM support in the x86 Linux kernel, the developers confirmed that they do not need a recent qemu-system-i386 binary here:
https://lore.kernel.org/kvm/Y%2ffkTs5ajFy0hP1U@google.com/
Signed-off-by: Thomas Huth <thuth@redhat.com> --- docs/about/deprecated.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 15084f7bea..98517f5187 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -196,6 +196,19 @@ CI coverage support may bitrot away before the deprecation process completes. The little endian variants of MIPS (both 32 and 64 bit) are still a supported host architecture.
+32-bit x86 hosts and ``qemu-system-i386`` (since 8.0) +''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Testing 32-bit x86 host OS support takes a lot of precious time during the +QEMU contiguous integration tests, and considering that most OS vendors +stopped shipping 32-bit variants of their x86 OS distributions and most +x86 hardware from the past >10 years is capable of 64-bit, keeping the +32-bit support alive is an inadequate burden for the QEMU project. Thus +QEMU will soon drop the support for 32-bit x86 host systems and the +``qemu-system-i386`` binary. Use ``qemu-system-x86_64`` (which is a proper +superset of ``qemu-system-i386``) on a 64-bit host machine instead.
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them. How about something like.... 32-bit x86 hosts '''''''''''''''' Support for 32-bit x86 host deployments is increasingly uncommon in mainstream Linux distributions given the widespread availability of 64-bit x86 hardware. The QEMU project no longer considers 32-bit x86 support to be an effective use of its limited resources, and thus intends to discontinue it. Current users of QEMU on 32-bit x86 hosts should either continue using existing releases of QEMU, with the caveat that they will no longer get security fixes, or migrate to a 64-bit platform which remains capable of running 32-bit guests if needed. ``qemu-system-i386`` binary removal ''''''''''''''''''''''''''''''''''' The ``qemu-system-x86_64`` binary can be used to run 32-bit guests by selecting a 32-bit CPU model, including KVM support on x86_64 hosts. Once support for the 32-bit x86 host platform is discontinued, the ``qemu-system-i386`` binary will be redundant. Current users are recommended to reconfigure their systems to use the ``qemu-system-x86_64`` binary. Same point for the next patch about 32-bit arm vs qemu-system-arm binary. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset. Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small. In fact, keeping this support around forces correct use of posix APIs such as e.g. PRIx64 which makes the code base more future-proof. -- MST

On 2/27/23 10:12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
It's not that small. It only works for single-threaded system mode. It silently does not honor atomicity for user-only mode, which is perhaps worse not working at all. r~

On Mon, Feb 27, 2023 at 10:21:14AM -1000, Richard Henderson wrote:
On 2/27/23 10:12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
It's not that small. It only works for single-threaded system mode. It silently does not honor atomicity for user-only mode, which is perhaps worse not working at all.
We should probably block multi-threading on 32 bit then. -- MST

On 28/2/23 09:59, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 10:21:14AM -1000, Richard Henderson wrote:
On 2/27/23 10:12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
It's not that small. It only works for single-threaded system mode. It silently does not honor atomicity for user-only mode, which is perhaps worse not working at all.
Will the same occur with 64-bit hosts when we introduce a 128-bit target? If so, there is no much code we'll be able to drop,
We should probably block multi-threading on 32 bit then.
so this sound a user experience fix.

On Mon, Feb 27, 2023 at 10:21:14AM -1000, Richard Henderson wrote:
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
It's not that small.
Meaning there are lots of ways to run 64 bit binaries on 32 bit systems? -- MST

On 2/27/23 23:00, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 10:21:14AM -1000, Richard Henderson wrote:
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
It's not that small.
Meaning there are lots of ways to run 64 bit binaries on 32 bit systems?
No, meaning the maint overhead is large. r~

On 27/2/23 21:12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Doesn't qemu-system-i386 start the CPU in a different mode that qemu-system-x86_64? Last time we discussed it, we mention adding -32 and -64 CLI flags to maintain compat, and IIRC this flag would add boot code to switch the CPU in 32-b. But then maybe I misunderstood. Thomas said, "CPUs must start in the same mode they start in HW".
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
In fact, keeping this support around forces correct use of posix APIs such as e.g. PRIx64 which makes the code base more future-proof.

On 27/02/2023 23.32, Philippe Mathieu-Daudé wrote:
On 27/2/23 21:12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Doesn't qemu-system-i386 start the CPU in a different mode that qemu-system-x86_64? Last time we discussed it, we mention adding -32 and -64 CLI flags to maintain compat, and IIRC this flag would add boot code to switch the CPU in 32-b. But then maybe I misunderstood. Thomas said, "CPUs must start in the same mode they start in HW".
No, I think you misunderstood something here. x86 CPUs always start in 16-bit mode, as far as I know, and the firmware / OS then has to switch to 32-bit or 64-bit mode as desired. Thomas

On 27/02/2023 21.12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
In fact, keeping this support around forces correct use of posix APIs such as e.g. PRIx64 which makes the code base more future-proof.
If you're concerned about PRIx64 and friends: We still continue to do compile testing with 32-bit MIPS cross-compilers and Windows 32-bit cross-compilers for now. The only thing we'd lose is the 32-bit "make check" run in the CI. Thomas

On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote:
On 27/02/2023 21.12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
In fact, keeping this support around forces correct use of posix APIs such as e.g. PRIx64 which makes the code base more future-proof.
If you're concerned about PRIx64 and friends: We still continue to do compile testing with 32-bit MIPS cross-compilers and Windows 32-bit cross-compilers for now. The only thing we'd lose is the 32-bit "make check" run in the CI.
Thomas
Yes - fundamentally 32 bit does not seem that different from e.g. windows builds - we presumably support these but AFAIK CI does not test these. -- MST

On Tue, Feb 28, 2023 at 03:19:20AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote:
On 27/02/2023 21.12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
Can you point to anything that backs up that assertion. Clouds I've seen always give you a 64-bit environment, and many OS no longer even ship 32-bit installable media. I would be surprised if 32-bit is above very very low single digits usage compared to x86_64.
In fact, keeping this support around forces correct use of posix APIs such as e.g. PRIx64 which makes the code base more future-proof.
If you're concerned about PRIx64 and friends: We still continue to do compile testing with 32-bit MIPS cross-compilers and Windows 32-bit cross-compilers for now. The only thing we'd lose is the 32-bit "make check" run in the CI.
Thomas
Yes - fundamentally 32 bit does not seem that different from e.g. windows builds - we presumably support these but AFAIK CI does not test these.
We do compile test windows in CI via mingw, and we also do build and unit tests via msys. Even Windows has dropped 32-bit support though, and so the only reason we keep 32-bit Windows around is because of Windows 10. Once a Windows 12 comes along, we'll not need to support 32-bit Windows either. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Tue, Feb 28, 2023 at 08:59:52AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 03:19:20AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote:
On 27/02/2023 21.12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
Can you point to anything that backs up that assertion. Clouds I've seen always give you a 64-bit environment, and many OS no longer even ship 32-bit installable media.
Sorry about being unclear. I meant that it seems easier to run CI in the cloud in a 32 bit x64 environment than get a 32 bit ARM environment.
I would be surprised if 32-bit is above very very low single digits usage compared to x86_64.
Absolutely.
In fact, keeping this support around forces correct use of posix APIs such as e.g. PRIx64 which makes the code base more future-proof.
If you're concerned about PRIx64 and friends: We still continue to do compile testing with 32-bit MIPS cross-compilers and Windows 32-bit cross-compilers for now. The only thing we'd lose is the 32-bit "make check" run in the CI.
Thomas
Yes - fundamentally 32 bit does not seem that different from e.g. windows builds - we presumably support these but AFAIK CI does not test these.
We do compile test windows in CI via mingw, and we also do build and unit tests via msys.
Even Windows has dropped 32-bit support though, and so the only reason we keep 32-bit Windows around is because of Windows 10. Once a Windows 12 comes along, we'll not need to support 32-bit Windows either.
With regards, Daniel
Or maybe we'll just rely on WSL.
-- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 28/02/2023 10.03, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:59:52AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 03:19:20AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote:
On 27/02/2023 21.12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote:
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact. eg removing qemu-system-i386 affects all host architectures, not merely 32-bit x86 host, so I think we can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
Can you point to anything that backs up that assertion. Clouds I've seen always give you a 64-bit environment, and many OS no longer even ship 32-bit installable media.
Sorry about being unclear. I meant that it seems easier to run CI in the cloud in a 32 bit x64 environment than get a 32 bit ARM environment.
It's still doable ... but for how much longer? We're currently depending on Fedora, but they also slowly drop more and more support for this environment, see e.g.: https://www.theregister.com/2022/03/10/fedora_inches_closer_to_dropping/ Thomas

On Tue, Feb 28, 2023 at 10:14:52AM +0100, Thomas Huth wrote:
On 28/02/2023 10.03, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:59:52AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 03:19:20AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote:
On 27/02/2023 21.12, Michael S. Tsirkin wrote:
On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote: > I feel like we should have separate deprecation entries for the > i686 host support, and for qemu-system-i386 emulator binary, as > although they're related they are independant features with > differing impact. eg removing qemu-system-i386 affects all > host architectures, not merely 32-bit x86 host, so I think we > can explain the impact more clearly if we separate them.
Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is a superset.
Removing support for building on 32 bit systems seems like a pity - it's one of a small number of ways to run 64 bit binaries on 32 bit systems, and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
Can you point to anything that backs up that assertion. Clouds I've seen always give you a 64-bit environment, and many OS no longer even ship 32-bit installable media.
Sorry about being unclear. I meant that it seems easier to run CI in the cloud in a 32 bit x64 environment than get a 32 bit ARM environment.
It's still doable ... but for how much longer? We're currently depending on Fedora, but they also slowly drop more and more support for this environment, see e.g.:
FWIW, we should cull our fedora-i386-cross.docker dockerfile and replace it with a debian i686 dockerfile generated by lcitool. There's no compelling reason why i686 should be different from all our other cross builds which are based on Debian. The Debian lcitool generated container would have access to a wider range of deps than our hand written Fedora one.
https://www.theregister.com/2022/03/10/fedora_inches_closer_to_dropping/
With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Tue, Feb 28, 2023 at 09:40:49AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 10:14:52AM +0100, Thomas Huth wrote:
On 28/02/2023 10.03, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:59:52AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 03:19:20AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote:
On 27/02/2023 21.12, Michael S. Tsirkin wrote: > On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote: > > I feel like we should have separate deprecation entries for the > > i686 host support, and for qemu-system-i386 emulator binary, as > > although they're related they are independant features with > > differing impact. eg removing qemu-system-i386 affects all > > host architectures, not merely 32-bit x86 host, so I think we > > can explain the impact more clearly if we separate them. > > Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is > a superset. > > Removing support for building on 32 bit systems seems like a pity - it's > one of a small number of ways to run 64 bit binaries on 32 bit systems, > and the maintainance overhead is quite small.
Note: We're talking about 32-bit *x86* hosts here. Do you really think that someone is still using QEMU usermode emulation to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
Can you point to anything that backs up that assertion. Clouds I've seen always give you a 64-bit environment, and many OS no longer even ship 32-bit installable media.
Sorry about being unclear. I meant that it seems easier to run CI in the cloud in a 32 bit x64 environment than get a 32 bit ARM environment.
It's still doable ... but for how much longer? We're currently depending on Fedora, but they also slowly drop more and more support for this environment, see e.g.:
FWIW, we should cull our fedora-i386-cross.docker dockerfile and replace it with a debian i686 dockerfile generated by lcitool. There's no compelling reason why i686 should be different from all our other cross builds which are based on Debian. The Debian lcitool generated container would have access to a wider range of deps than our hand written Fedora one.
https://www.theregister.com/2022/03/10/fedora_inches_closer_to_dropping/
With regards, Daniel
... and is closer to where 32 bit is likely to be deployed which is systems like e.g. raspberry pi os which until recently was only 32 bit. -- MST

"Michael S. Tsirkin" <mst@redhat.com> writes:
On Tue, Feb 28, 2023 at 09:40:49AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 10:14:52AM +0100, Thomas Huth wrote:
On 28/02/2023 10.03, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:59:52AM +0000, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 03:19:20AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 08:49:09AM +0100, Thomas Huth wrote: > On 27/02/2023 21.12, Michael S. Tsirkin wrote: > > On Mon, Feb 27, 2023 at 11:50:07AM +0000, Daniel P. Berrangé wrote: > > > I feel like we should have separate deprecation entries for the > > > i686 host support, and for qemu-system-i386 emulator binary, as > > > although they're related they are independant features with > > > differing impact. eg removing qemu-system-i386 affects all > > > host architectures, not merely 32-bit x86 host, so I think we > > > can explain the impact more clearly if we separate them. > > > > Removing qemu-system-i386 seems ok to me - I think qemu-system-x86_64 is > > a superset. > > > > Removing support for building on 32 bit systems seems like a pity - it's > > one of a small number of ways to run 64 bit binaries on 32 bit systems, > > and the maintainance overhead is quite small. > > Note: We're talking about 32-bit *x86* hosts here. Do you really think that > someone is still using QEMU usermode emulation > to run 64-bit binaries on a 32-bit x86 host?? ... If so, I'd be very surprised!
I don't know - why x86 specifically? One can build a 32 bit binary on any host. I think 32 bit x86 environments are just more common in the cloud.
Can you point to anything that backs up that assertion. Clouds I've seen always give you a 64-bit environment, and many OS no longer even ship 32-bit installable media.
Sorry about being unclear. I meant that it seems easier to run CI in the cloud in a 32 bit x64 environment than get a 32 bit ARM environment.
It's still doable ... but for how much longer? We're currently depending on Fedora, but they also slowly drop more and more support for this environment, see e.g.:
FWIW, we should cull our fedora-i386-cross.docker dockerfile and replace it with a debian i686 dockerfile generated by lcitool. There's no compelling reason why i686 should be different from all our other cross builds which are based on Debian. The Debian lcitool generated container would have access to a wider range of deps than our hand written Fedora one.
https://www.theregister.com/2022/03/10/fedora_inches_closer_to_dropping/
With regards, Daniel
... and is closer to where 32 bit is likely to be deployed which is systems like e.g. raspberry pi os which until recently was only 32 bit.
32 bit ARM. How is that an argument for continued maintenance of 32 bit x86? If the argument goes like "32 bit x86 is easier to test in CI", then I don't buy it. Testing 64 bit ARM + 32 bit x86 does not magically replace testing 32 bit ARM. The question to answer: Is 32 bit x86 worth its upkeep? Two sub-questions: 1. Is it worth the human attention? 2. Is it worth (scarce!) CI minutes? I want to see an argument for benefits justifying the costs. A benefit like "somebody out there might still want to use it" I'd value at zero.

On Tue, Feb 28, 2023 at 11:39:39AM +0100, Markus Armbruster wrote:
The question to answer: Is 32 bit x86 worth its upkeep? Two sub-questions: 1. Is it worth the human attention? 2. Is it worth (scarce!) CI minutes?
3. Is it worth arguing about? -- MST

On 28/02/2023 11.51, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 11:39:39AM +0100, Markus Armbruster wrote:
The question to answer: Is 32 bit x86 worth its upkeep? Two sub-questions: 1. Is it worth the human attention? 2. Is it worth (scarce!) CI minutes?
3. Is it worth arguing about?
You are aware of the problems we're currently struggeling with, aren't you? Darn, we're having *SEVERE* problems with the CI, the QEMU project ran out of CI minutes for the second time this year, and you ask whether it's worth arguing about??? You're not serious with this question, are you? Thomas

On Tue, Feb 28, 2023 at 12:12:22PM +0100, Thomas Huth wrote:
On 28/02/2023 11.51, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 11:39:39AM +0100, Markus Armbruster wrote:
The question to answer: Is 32 bit x86 worth its upkeep? Two sub-questions: 1. Is it worth the human attention? 2. Is it worth (scarce!) CI minutes?
3. Is it worth arguing about?
You are aware of the problems we're currently struggeling with, aren't you? Darn, we're having *SEVERE* problems with the CI, the QEMU project ran out of CI minutes for the second time this year, and you ask whether it's worth arguing about??? You're not serious with this question, are you?
Thomas
Yah just couldn't resist. How many minutes do we use per month btw? -- MST

On Tue, Feb 28, 2023 at 06:24:02AM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 12:12:22PM +0100, Thomas Huth wrote:
On 28/02/2023 11.51, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 11:39:39AM +0100, Markus Armbruster wrote:
The question to answer: Is 32 bit x86 worth its upkeep? Two sub-questions: 1. Is it worth the human attention? 2. Is it worth (scarce!) CI minutes?
3. Is it worth arguing about?
You are aware of the problems we're currently struggeling with, aren't you? Darn, we're having *SEVERE* problems with the CI, the QEMU project ran out of CI minutes for the second time this year, and you ask whether it's worth arguing about??? You're not serious with this question, are you?
Thomas
Yah just couldn't resist. How many minutes do we use per month btw?
100,000 wall clock minutes lasted about 2+1/2 weeks this month, and similar in Jan too. Last year we were managing to get through the whole month on 100,000, but we got backlogged with merges due to the xmas / new year shutdown, and catching up is exhausting our allowance too quickly, as well as natural growth in amount of stuff we're testing per job. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

"Michael S. Tsirkin" <mst@redhat.com> writes:
On Tue, Feb 28, 2023 at 11:39:39AM +0100, Markus Armbruster wrote:
The question to answer: Is 32 bit x86 worth its upkeep? Two sub-questions: 1. Is it worth the human attention? 2. Is it worth (scarce!) CI minutes?
3. Is it worth arguing about?
If it's not worth arguing, then we merge Thomas's patch.

On Tue, Feb 28, 2023 at 12:34:19PM +0100, Markus Armbruster wrote:
If it's not worth arguing, then we merge Thomas's patch.
I don't mind but it's just a doc patch isn't it? If what we want to do is to stop doing make check on a 32 bit container and just to do make then let's patch the relevant yaml. I'd ack this, easy. -- MST

On 2/27/23 01:50, Daniel P. Berrangé wrote:
On Mon, Feb 27, 2023 at 12:10:49PM +0100, Thomas Huth wrote:
Hardly anybody still uses 32-bit x86 hosts today, so we should start deprecating them to finally have less test efforts. With regards to 32-bit KVM support in the x86 Linux kernel, the developers confirmed that they do not need a recent qemu-system-i386 binary here:
https://lore.kernel.org/kvm/Y%2ffkTs5ajFy0hP1U@google.com/
Signed-off-by: Thomas Huth <thuth@redhat.com> --- docs/about/deprecated.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 15084f7bea..98517f5187 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -196,6 +196,19 @@ CI coverage support may bitrot away before the deprecation process completes. The little endian variants of MIPS (both 32 and 64 bit) are still a supported host architecture.
+32-bit x86 hosts and ``qemu-system-i386`` (since 8.0) +''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Testing 32-bit x86 host OS support takes a lot of precious time during the +QEMU contiguous integration tests, and considering that most OS vendors +stopped shipping 32-bit variants of their x86 OS distributions and most +x86 hardware from the past >10 years is capable of 64-bit, keeping the +32-bit support alive is an inadequate burden for the QEMU project. Thus +QEMU will soon drop the support for 32-bit x86 host systems and the +``qemu-system-i386`` binary. Use ``qemu-system-x86_64`` (which is a proper +superset of ``qemu-system-i386``) on a 64-bit host machine instead.
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact.
Agreed.
32-bit x86 hosts ''''''''''''''''
Support for 32-bit x86 host deployments is increasingly uncommon in mainstream Linux distributions given the widespread availability of 64-bit x86 hardware. The QEMU project no longer considers 32-bit x86 support to be an effective use of its limited resources, and thus intends to discontinue it.
Current users of QEMU on 32-bit x86 hosts should either continue using existing releases of QEMU, with the caveat that they will no longer get security fixes, or migrate to a 64-bit platform which remains capable of running 32-bit guests if needed. Ack.
``qemu-system-i386`` binary removal '''''''''''''''''''''''''''''''''''
The ``qemu-system-x86_64`` binary can be used to run 32-bit guests by selecting a 32-bit CPU model, including KVM support on x86_64 hosts. Once support for the 32-bit x86 host platform is discontinued, the ``qemu-system-i386`` binary will be redundant.
Missing "kvm" in this last sentence? It is otherwise untrue for tcg.
Current users are recommended to reconfigure their systems to use the ``qemu-system-x86_64`` binary.
Ack.
Same point for the next patch about 32-bit arm vs qemu-system-arm binary.
Ack. r~

On 27/02/2023 21.25, Richard Henderson wrote:
On 2/27/23 01:50, Daniel P. Berrangé wrote:
On Mon, Feb 27, 2023 at 12:10:49PM +0100, Thomas Huth wrote:
Hardly anybody still uses 32-bit x86 hosts today, so we should start deprecating them to finally have less test efforts. With regards to 32-bit KVM support in the x86 Linux kernel, the developers confirmed that they do not need a recent qemu-system-i386 binary here:
https://lore.kernel.org/kvm/Y%2ffkTs5ajFy0hP1U@google.com/
Signed-off-by: Thomas Huth <thuth@redhat.com> --- docs/about/deprecated.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 15084f7bea..98517f5187 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -196,6 +196,19 @@ CI coverage support may bitrot away before the deprecation process completes. The little endian variants of MIPS (both 32 and 64 bit) are still a supported host architecture. +32-bit x86 hosts and ``qemu-system-i386`` (since 8.0) +''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Testing 32-bit x86 host OS support takes a lot of precious time during the +QEMU contiguous integration tests, and considering that most OS vendors +stopped shipping 32-bit variants of their x86 OS distributions and most +x86 hardware from the past >10 years is capable of 64-bit, keeping the +32-bit support alive is an inadequate burden for the QEMU project. Thus +QEMU will soon drop the support for 32-bit x86 host systems and the +``qemu-system-i386`` binary. Use ``qemu-system-x86_64`` (which is a proper +superset of ``qemu-system-i386``) on a 64-bit host machine instead.
I feel like we should have separate deprecation entries for the i686 host support, and for qemu-system-i386 emulator binary, as although they're related they are independant features with differing impact.
Agreed.
OK, fair, I'll rework my patch according to your suggestion, Daniel.
32-bit x86 hosts ''''''''''''''''
Support for 32-bit x86 host deployments is increasingly uncommon in mainstream Linux distributions given the widespread availability of 64-bit x86 hardware. The QEMU project no longer considers 32-bit x86 support to be an effective use of its limited resources, and thus intends to discontinue it.
Current users of QEMU on 32-bit x86 hosts should either continue using existing releases of QEMU, with the caveat that they will no longer get security fixes, or migrate to a 64-bit platform which remains capable of running 32-bit guests if needed. Ack.
``qemu-system-i386`` binary removal '''''''''''''''''''''''''''''''''''
The ``qemu-system-x86_64`` binary can be used to run 32-bit guests by selecting a 32-bit CPU model, including KVM support on x86_64 hosts. Once support for the 32-bit x86 host platform is discontinued, the ``qemu-system-i386`` binary will be redundant.
Missing "kvm" in this last sentence? It is otherwise untrue for tcg.
I assume that Daniel only thought of 32-bit x86 hosts here, but indeed, it's untrue for non-x86 32-bit hosts. So this really should refer to KVM on 32-bit x86 hosts instead. I'll rephrase it in v2. Thomas

qemu-system-aarch64 is a proper superset of qemu-system-arm, and the latter was mainly still required for 32-bit KVM support. But this 32-bit KVM arm support has been dropped in the Linux kernel a couple of years ago already,so we don't really need qemu-system-arm anymore, thus deprecated it now. Additionally, it's quite unlikely that anybody is still running full system emulation on a 32-bit arm host nowadays. All recent strong arm host machines should support 64-bit now, so we also deprecate the 32-bit hosts here to finally save some precious minutes in our CI. Signed-off-by: Thomas Huth <thuth@redhat.com> --- docs/about/deprecated.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 98517f5187..a52e45b570 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -208,6 +208,23 @@ QEMU will soon drop the support for 32-bit x86 host systems and the ``qemu-system-i386`` binary. Use ``qemu-system-x86_64`` (which is a proper superset of ``qemu-system-i386``) on a 64-bit host machine instead. +System emulation on 32-bit arm hosts and ``qemu-system-arm`` (since 8.0) +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +``qemu-system-aarch64`` is a proper superset of ``qemu-system-arm``. The +latter was mainly a requirement for running KVM on 32-bit arm hosts, but +this 32-bit KVM support has been removed some years ago already (see: +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i... +). Thus the QEMU project will drop the ``qemu-system-arm`` binary in a +future release -- use ``qemu-system-aarch64`` instead. + +Since you need a strong host machine for running full system emulation, +and all recent strong hosts support 64-bit anyway, the QEMU project +also deprecates the support for running any system emulation on 32-bit +arm hosts in general. Use 64-bit arm hosts for system emulation instead. +(Note: "user" mode emulation continuous to be supported on 32-bit arm +hosts, too) + QEMU API (QAPI) events ---------------------- -- 2.31.1

On Mon, Feb 27, 2023 at 12:10:48PM +0100, Thomas Huth wrote:
We're struggling quite badly with our CI minutes on the shared gitlab runners, so we urgently need to think of ways to cut down our supported build and target environments. qemu-system-i386 and qemu-system-arm are not really required anymore, since nobody uses KVM on the corresponding systems for production anymore, and the -x86_64 and -arch64 variants are a proper superset of those binaries. So it's time to deprecate them and the corresponding 32-bit host environments now.
This is a follow-up patch series from the previous discussion here:
https://lore.kernel.org/qemu-devel/20230130114428.1297295-1-thuth@redhat.com...
where people still mentioned that there is still interest in certain support for 32-bit host hardware. But as far as I could see, there is no real need for 32-bit host support for system emulation on x86 and arm anymore, so it should be fine if we drop these host environments now (these are also the two architectures that contribute the most to the long test times in our CI, so we would benefit a lot by dropping those).
Your description here is a little ambiguous about what's being proposed. When you say dropping 32-bit host support do you mean just for the system emulator binaries, or for QEMU entirely ? And when the deprecation period is passed, are you proposing to actively prevent 32-bit builds, or merely stopping CI testing and leave 32-bit builds still working if people want them ? With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 27/02/2023 19.38, Daniel P. Berrangé wrote:
On Mon, Feb 27, 2023 at 12:10:48PM +0100, Thomas Huth wrote:
We're struggling quite badly with our CI minutes on the shared gitlab runners, so we urgently need to think of ways to cut down our supported build and target environments. qemu-system-i386 and qemu-system-arm are not really required anymore, since nobody uses KVM on the corresponding systems for production anymore, and the -x86_64 and -arch64 variants are a proper superset of those binaries. So it's time to deprecate them and the corresponding 32-bit host environments now.
This is a follow-up patch series from the previous discussion here:
https://lore.kernel.org/qemu-devel/20230130114428.1297295-1-thuth@redhat.com...
where people still mentioned that there is still interest in certain support for 32-bit host hardware. But as far as I could see, there is no real need for 32-bit host support for system emulation on x86 and arm anymore, so it should be fine if we drop these host environments now (these are also the two architectures that contribute the most to the long test times in our CI, so we would benefit a lot by dropping those).
Your description here is a little ambiguous about what's being proposed. When you say dropping 32-bit host support do you mean just for the system emulator binaries, or for QEMU entirely ?
Just for system emulation. Some people said that user emulation still might be useful for some 32-bit environments.
And when the deprecation period is passed, are you proposing to actively prevent 32-bit builds, or merely stopping CI testing and leave 32-bit builds still working if people want them ?
CI is the main pain point, so that's the most important thing. So whether we throw a warning or a hard error while configuring the build, I don't care too much. Thomas

On Tue, Feb 28, 2023 at 08:39:49AM +0100, Thomas Huth wrote:
On 27/02/2023 19.38, Daniel P. Berrangé wrote:
On Mon, Feb 27, 2023 at 12:10:48PM +0100, Thomas Huth wrote:
We're struggling quite badly with our CI minutes on the shared gitlab runners, so we urgently need to think of ways to cut down our supported build and target environments. qemu-system-i386 and qemu-system-arm are not really required anymore, since nobody uses KVM on the corresponding systems for production anymore, and the -x86_64 and -arch64 variants are a proper superset of those binaries. So it's time to deprecate them and the corresponding 32-bit host environments now.
This is a follow-up patch series from the previous discussion here:
https://lore.kernel.org/qemu-devel/20230130114428.1297295-1-thuth@redhat.com...
where people still mentioned that there is still interest in certain support for 32-bit host hardware. But as far as I could see, there is no real need for 32-bit host support for system emulation on x86 and arm anymore, so it should be fine if we drop these host environments now (these are also the two architectures that contribute the most to the long test times in our CI, so we would benefit a lot by dropping those).
Your description here is a little ambiguous about what's being proposed. When you say dropping 32-bit host support do you mean just for the system emulator binaries, or for QEMU entirely ?
Just for system emulation. Some people said that user emulation still might be useful for some 32-bit environments.
And when the deprecation period is passed, are you proposing to actively prevent 32-bit builds, or merely stopping CI testing and leave 32-bit builds still working if people want them ?
CI is the main pain point, so that's the most important thing. So whether we throw a warning or a hard error while configuring the build, I don't care too much.
If we're merely wanting to drop CI support, we can do that any time and deprecation is not required/expected. We should only be using deprecation where we're explicitly intending that the code will cease to work. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Tue, Feb 28, 2023 at 09:01:46AM +0000, Daniel P. Berrangé wrote:
If we're merely wanting to drop CI support, we can do that any time and deprecation is not required/expected. We should only be using deprecation where we're explicitly intending that the code will cease to work.
Good point, IMO. -- MST

On 28/02/2023 10.01, Daniel P. Berrangé wrote:
On Tue, Feb 28, 2023 at 08:39:49AM +0100, Thomas Huth wrote:
On 27/02/2023 19.38, Daniel P. Berrangé wrote:
On Mon, Feb 27, 2023 at 12:10:48PM +0100, Thomas Huth wrote:
We're struggling quite badly with our CI minutes on the shared gitlab runners, so we urgently need to think of ways to cut down our supported build and target environments. qemu-system-i386 and qemu-system-arm are not really required anymore, since nobody uses KVM on the corresponding systems for production anymore, and the -x86_64 and -arch64 variants are a proper superset of those binaries. So it's time to deprecate them and the corresponding 32-bit host environments now.
This is a follow-up patch series from the previous discussion here:
https://lore.kernel.org/qemu-devel/20230130114428.1297295-1-thuth@redhat.com...
where people still mentioned that there is still interest in certain support for 32-bit host hardware. But as far as I could see, there is no real need for 32-bit host support for system emulation on x86 and arm anymore, so it should be fine if we drop these host environments now (these are also the two architectures that contribute the most to the long test times in our CI, so we would benefit a lot by dropping those).
Your description here is a little ambiguous about what's being proposed. When you say dropping 32-bit host support do you mean just for the system emulator binaries, or for QEMU entirely ?
Just for system emulation. Some people said that user emulation still might be useful for some 32-bit environments.
And when the deprecation period is passed, are you proposing to actively prevent 32-bit builds, or merely stopping CI testing and leave 32-bit builds still working if people want them ?
CI is the main pain point, so that's the most important thing. So whether we throw a warning or a hard error while configuring the build, I don't care too much.
If we're merely wanting to drop CI support, we can do that any time and deprecation is not required/expected. We should only be using deprecation where we're explicitly intending that the code will cease to work.
Well, without CI, I assume that the code will bitrot quite fast (considering that there are continuous improvements to TCG, for example). And who's then still volunteering to fix bugs that have crept in months ago, for a host architecture that nobody really uses anymore? Clearly, 32-bit x86 host is pretty much dead nowadays, especially for programs like QEMU that need beefy host hardware. Why do we still waste our time with this? Thomas

On Tue, Feb 28, 2023 at 09:05:16PM +0100, Thomas Huth wrote:
Well, without CI, I assume that the code will bitrot quite fast (considering that there are continuous improvements to TCG, for example).
We have lots of hosts which we don't test with CI. They don't bitrot because people do testing before release. This is what RCs are for. We did releases before CI - it is a cost/benefit thing. -- MST

On 28/02/2023 22.32, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 09:05:16PM +0100, Thomas Huth wrote:
Well, without CI, I assume that the code will bitrot quite fast (considering that there are continuous improvements to TCG, for example).
We have lots of hosts which we don't test with CI. They don't bitrot because people do testing before release.
Other hosts don't bitrot completely since there are still people out there who are interested in those host systems. But are you aware of anybody who's still actively interested in 32-bit x86 host systems and thus makes sure that QEMU would still work fine there when we publish release candidates? Thomas

"Michael S. Tsirkin" <mst@redhat.com> writes:
On Tue, Feb 28, 2023 at 09:05:16PM +0100, Thomas Huth wrote:
Well, without CI, I assume that the code will bitrot quite fast (considering that there are continuous improvements to TCG, for example).
We have lots of hosts which we don't test with CI. They don't bitrot because people do testing before release. This is what RCs are for. We did releases before CI - it is a cost/benefit thing.
Dropping 32-bit x86 from CI feels like a no-brainer in the current situation. As to deprecating 32-bit x86: the people by far most qualified to judge the "cost/benefit thing" are the regulars who are bearing the cost, i.e. the people who are actually maintaining it. Their opinion should overrule any "but somebody out there might still want to use it". Maintainers, please state your opinion, if any: aye or nay. Richard tells us "the maint overhead is large." Makes me think he's in favour of dropping 32-bit x86. Richard? Peter seems to be reluctant to drop 32-bit ARM at this point. Peter?

On Wed, Mar 1, 2023, 12:36 AM Markus Armbruster <armbru@redhat.com> wrote:
"Michael S. Tsirkin" <mst@redhat.com> writes:
On Tue, Feb 28, 2023 at 09:05:16PM +0100, Thomas Huth wrote:
Well, without CI, I assume that the code will bitrot quite fast (considering that there are continuous improvements to TCG, for example).
We have lots of hosts which we don't test with CI. They don't bitrot because people do testing before release. This is what RCs are for. We did releases before CI - it is a cost/benefit thing.
Dropping 32-bit x86 from CI feels like a no-brainer in the current situation.
As to deprecating 32-bit x86: the people by far most qualified to judge the "cost/benefit thing" are the regulars who are bearing the cost, i.e. the people who are actually maintaining it. Their opinion should overrule any "but somebody out there might still want to use it".
Maintainers, please state your opinion, if any: aye or nay.
Richard tells us "the maint overhead is large." Makes me think he's in favour of dropping 32-bit x86. Richard?
Peter seems to be reluctant to drop 32-bit ARM at this point. Peter?
For FreeBSD systen we have no 32bit arm host users. There may be a few i386 host users left, but they are a tiny sliver of users. The overwhelming bulk of our users for qemu-system- are on x86-64 or aarch64 hosts. For bsd-user, there is no 32 bit host support at all. It was dropped as part of the push to prune old code and upstream. Warner
participants (7)
-
Daniel P. Berrangé
-
Markus Armbruster
-
Michael S. Tsirkin
-
Philippe Mathieu-Daudé
-
Richard Henderson
-
Thomas Huth
-
Warner Losh