Message ID | 20230227111050.54083-2-thuth@redhat.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Deprecate support for 32-bit x86 and arm hosts | expand |
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
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.
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 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/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 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
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.
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.
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
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?
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
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.
"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?
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?
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
"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.
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 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~
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 ----------------------
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(+)