Xen-Devel Archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts
@ 2023-03-03 10:14 Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 1/6] docs/about/deprecated: Deprecate 32-bit x86 hosts Thomas Huth
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

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 (32-bit arm for system emulation, and 32-bit x86
completely).

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 x86 host support and for system emulation on
32-bit arm hosts anymore, so it should be fine if we drop these host
environments soon (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).

v3:
- Update some commit descriptions according to the suggestions in v2
- Added the Reviewed-bys from v2

v2:
- Split binary and host deprecation into separate patches
- Added patches to immediately drop the jobs from the CI

Thomas Huth (6):
  docs/about/deprecated: Deprecate 32-bit x86 hosts
  docs/about/deprecated: Deprecate the qemu-system-i386 binary
  gitlab-ci.d/crossbuilds: Drop the i386 jobs
  docs/about/deprecated: Deprecate 32-bit arm hosts for system emulation
  docs/about/deprecated: Deprecate the qemu-system-arm binary
  gitlab-ci.d/crossbuilds: Drop the 32-bit arm system emulation jobs

 docs/about/deprecated.rst    | 43 ++++++++++++++++++++++++++++++++++++
 .gitlab-ci.d/crossbuilds.yml | 34 ----------------------------
 2 files changed, 43 insertions(+), 34 deletions(-)

-- 
2.31.1



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v3 1/6] docs/about/deprecated: Deprecate 32-bit x86 hosts
  2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
@ 2023-03-03 10:14 ` Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 2/6] docs/about/deprecated: Deprecate the qemu-system-i386 binary Thomas Huth
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

Hardly anybody still uses 32-bit x86 hosts today, so we should start
deprecating them to stop wasting our time and CI minutes here.
For example, there are also still some unresolved problems with these:
When emulating 64-bit binaries in user mode, TCG does not honor atomicity
for 64-bit accesses, which is "perhaps worse than not working at all"
(quoting Richard). Let's simply make it clear that people should use
64-bit x86 hosts nowadays and we do not intend to fix/maintain the old
32-bit stuff.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/deprecated.rst | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 15084f7bea..f0c1e6b545 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -196,6 +196,18 @@ 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 (since 8.0)
+''''''''''''''''''''''''''''
+
+Support for 32-bit x86 host deployments is increasingly uncommon in
+mainstream OS 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. Since all recent x86 hardware from the past >10 years
+is capable of the 64-bit x86 extensions, a corresponding 64-bit OS
+should be used instead.
+
+
 QEMU API (QAPI) events
 ----------------------
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 2/6] docs/about/deprecated: Deprecate the qemu-system-i386 binary
  2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 1/6] docs/about/deprecated: Deprecate 32-bit x86 hosts Thomas Huth
@ 2023-03-03 10:14 ` Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 3/6] gitlab-ci.d/crossbuilds: Drop the i386 jobs Thomas Huth
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

Aside from not supporting KVM on 32-bit hosts, the qemu-system-x86_64
binary is a proper superset of the qemu-system-i386 binary. With the
32-bit host support being deprecated, it is now also possible to
deprecate the qemu-system-i386 binary.

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/

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/deprecated.rst | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index f0c1e6b545..a30aa8dfdf 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -34,6 +34,18 @@ deprecating the build option and no longer defend it in CI. The
 ``--enable-gcov`` build option remains for analysis test case
 coverage.
 
+``qemu-system-i386`` binary (since 8.0)
+'''''''''''''''''''''''''''''''''''''''
+
+The ``qemu-system-i386`` binary was mainly useful for running with KVM
+on 32-bit x86 hosts, but most Linux distributions already removed their
+support for 32-bit x86 kernels, so hardly anybody still needs this. The
+``qemu-system-x86_64`` binary is a proper superset and can be used to
+run 32-bit guests by selecting a 32-bit CPU model, including KVM support
+on x86_64 hosts. Thus users are recommended to reconfigure their systems
+to use the ``qemu-system-x86_64`` binary instead.
+
+
 System emulator command line arguments
 --------------------------------------
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 3/6] gitlab-ci.d/crossbuilds: Drop the i386 jobs
  2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 1/6] docs/about/deprecated: Deprecate 32-bit x86 hosts Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 2/6] docs/about/deprecated: Deprecate the qemu-system-i386 binary Thomas Huth
@ 2023-03-03 10:14 ` Thomas Huth
  2023-03-03 10:21   ` Philippe Mathieu-Daudé
  2023-03-03 10:14 ` [PATCH v3 4/6] docs/about/deprecated: Deprecate 32-bit arm hosts for system emulation Thomas Huth
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

Hardly anybody still uses 32-bit x86 environments for running QEMU,
so let's stop wasting our scarce CI minutes with these jobs.

(There are still the 32-bit MinGW and TCI jobs around for having
some compile test coverage on 32-bit, and the dockerfile can stay
in case someone wants to reproduce a flaw locally)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/crossbuilds.yml | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index d3a31a2112..b96439146f 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -43,26 +43,6 @@ cross-arm64-user:
   variables:
     IMAGE: debian-arm64-cross
 
-cross-i386-system:
-  extends:
-    - .cross_system_build_job
-    - .cross_test_artifacts
-  needs:
-    job: i386-fedora-cross-container
-  variables:
-    IMAGE: fedora-i386-cross
-    MAKE_CHECK_ARGS: check-qtest
-
-cross-i386-user:
-  extends:
-    - .cross_user_build_job
-    - .cross_test_artifacts
-  needs:
-    job: i386-fedora-cross-container
-  variables:
-    IMAGE: fedora-i386-cross
-    MAKE_CHECK_ARGS: check
-
 cross-i386-tci:
   extends:
     - .cross_accel_build_job
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 4/6] docs/about/deprecated: Deprecate 32-bit arm hosts for system emulation
  2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
                   ` (2 preceding siblings ...)
  2023-03-03 10:14 ` [PATCH v3 3/6] gitlab-ci.d/crossbuilds: Drop the i386 jobs Thomas Huth
@ 2023-03-03 10:14 ` Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 5/6] docs/about/deprecated: Deprecate the qemu-system-arm binary Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 6/6] gitlab-ci.d/crossbuilds: Drop the 32-bit arm system emulation jobs Thomas Huth
  5 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

For running QEMU in system emulation mode, the user needs a rather
strong host system, i.e. not only an embedded low-frequency controller.
All recent beefy arm host machines should support 64-bit now, it's
unlikely that anybody is still seriously using QEMU on a 32-bit arm
CPU, so we deprecate the 32-bit arm hosts here to finally save use
some time and precious CI minutes.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/deprecated.rst | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index a30aa8dfdf..e2e908f84d 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -219,6 +219,15 @@ discontinue it. Since all recent x86 hardware from the past >10 years
 is capable of the 64-bit x86 extensions, a corresponding 64-bit OS
 should be used instead.
 
+System emulation on 32-bit arm hosts (since 8.0)
+''''''''''''''''''''''''''''''''''''''''''''''''
+
+Since QEMU needs a strong host machine for running full system emulation, and
+all recent powerful arm hosts support 64-bit, the QEMU project 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



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 5/6] docs/about/deprecated: Deprecate the qemu-system-arm binary
  2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
                   ` (3 preceding siblings ...)
  2023-03-03 10:14 ` [PATCH v3 4/6] docs/about/deprecated: Deprecate 32-bit arm hosts for system emulation Thomas Huth
@ 2023-03-03 10:14 ` Thomas Huth
  2023-03-03 10:14 ` [PATCH v3 6/6] gitlab-ci.d/crossbuilds: Drop the 32-bit arm system emulation jobs Thomas Huth
  5 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

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.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 docs/about/deprecated.rst | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index e2e908f84d..1b7b3da309 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -45,6 +45,16 @@ run 32-bit guests by selecting a 32-bit CPU model, including KVM support
 on x86_64 hosts. Thus users are recommended to reconfigure their systems
 to use the ``qemu-system-x86_64`` binary instead.
 
+``qemu-system-arm`` binary (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 three years ago already (see:
+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=541ad0150ca4
+). Thus the QEMU project will drop the ``qemu-system-arm`` binary in a
+future release. Use ``qemu-system-aarch64`` instead.
+
 
 System emulator command line arguments
 --------------------------------------
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 6/6] gitlab-ci.d/crossbuilds: Drop the 32-bit arm system emulation jobs
  2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
                   ` (4 preceding siblings ...)
  2023-03-03 10:14 ` [PATCH v3 5/6] docs/about/deprecated: Deprecate the qemu-system-arm binary Thomas Huth
@ 2023-03-03 10:14 ` Thomas Huth
  5 siblings, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2023-03-03 10:14 UTC (permalink / raw
  To: qemu-devel, Peter Maydell, Daniel Berrange, Paolo Bonzini
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

Hardly anybody still uses 32-bit arm environments for running QEMU,
so let's stop wasting our scarce CI minutes with these jobs.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.d/crossbuilds.yml | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
index b96439146f..d1feca9f9f 100644
--- a/.gitlab-ci.d/crossbuilds.yml
+++ b/.gitlab-ci.d/crossbuilds.yml
@@ -1,13 +1,6 @@
 include:
   - local: '/.gitlab-ci.d/crossbuild-template.yml'
 
-cross-armel-system:
-  extends: .cross_system_build_job
-  needs:
-    job: armel-debian-cross-container
-  variables:
-    IMAGE: debian-armel-cross
-
 cross-armel-user:
   extends: .cross_user_build_job
   needs:
@@ -15,13 +8,6 @@ cross-armel-user:
   variables:
     IMAGE: debian-armel-cross
 
-cross-armhf-system:
-  extends: .cross_system_build_job
-  needs:
-    job: armhf-debian-cross-container
-  variables:
-    IMAGE: debian-armhf-cross
-
 cross-armhf-user:
   extends: .cross_user_build_job
   needs:
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 3/6] gitlab-ci.d/crossbuilds: Drop the i386 jobs
  2023-03-03 10:14 ` [PATCH v3 3/6] gitlab-ci.d/crossbuilds: Drop the i386 jobs Thomas Huth
@ 2023-03-03 10:21   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-03-03 10:21 UTC (permalink / raw
  To: Thomas Huth, qemu-devel, Peter Maydell, Daniel Berrange,
	Paolo Bonzini, Laurent Vivier
  Cc: Markus Armbruster, Alex Bennée, qemu-arm, Maxim Levitsky,
	libvir-list, Richard Henderson, xen-devel, Reinoud Zandijk,
	Wilfred Mallawa

On 3/3/23 11:14, Thomas Huth wrote:
> Hardly anybody still uses 32-bit x86 environments for running QEMU,
> so let's stop wasting our scarce CI minutes with these jobs.
> 
> (There are still the 32-bit MinGW and TCI jobs around for having
> some compile test coverage on 32-bit, and the dockerfile can stay
> in case someone wants to reproduce a flaw locally)
> 
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> Reviewed-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   .gitlab-ci.d/crossbuilds.yml | 20 --------------------
>   1 file changed, 20 deletions(-)
> 
> diff --git a/.gitlab-ci.d/crossbuilds.yml b/.gitlab-ci.d/crossbuilds.yml
> index d3a31a2112..b96439146f 100644
> --- a/.gitlab-ci.d/crossbuilds.yml
> +++ b/.gitlab-ci.d/crossbuilds.yml
> @@ -43,26 +43,6 @@ cross-arm64-user:
>     variables:
>       IMAGE: debian-arm64-cross
>   
> -cross-i386-system:
> -  extends:
> -    - .cross_system_build_job
> -    - .cross_test_artifacts
> -  needs:
> -    job: i386-fedora-cross-container
> -  variables:
> -    IMAGE: fedora-i386-cross
> -    MAKE_CHECK_ARGS: check-qtest
> -
> -cross-i386-user:
> -  extends:
> -    - .cross_user_build_job
> -    - .cross_test_artifacts
> -  needs:
> -    job: i386-fedora-cross-container
> -  variables:
> -    IMAGE: fedora-i386-cross
> -    MAKE_CHECK_ARGS: check

The cross-i386-user job might require an Ack from Laurent,
so cc'ing him.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-03-03 10:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-03 10:14 [PATCH v3 0/6] Deprecate support for 32-bit x86 and arm hosts Thomas Huth
2023-03-03 10:14 ` [PATCH v3 1/6] docs/about/deprecated: Deprecate 32-bit x86 hosts Thomas Huth
2023-03-03 10:14 ` [PATCH v3 2/6] docs/about/deprecated: Deprecate the qemu-system-i386 binary Thomas Huth
2023-03-03 10:14 ` [PATCH v3 3/6] gitlab-ci.d/crossbuilds: Drop the i386 jobs Thomas Huth
2023-03-03 10:21   ` Philippe Mathieu-Daudé
2023-03-03 10:14 ` [PATCH v3 4/6] docs/about/deprecated: Deprecate 32-bit arm hosts for system emulation Thomas Huth
2023-03-03 10:14 ` [PATCH v3 5/6] docs/about/deprecated: Deprecate the qemu-system-arm binary Thomas Huth
2023-03-03 10:14 ` [PATCH v3 6/6] gitlab-ci.d/crossbuilds: Drop the 32-bit arm system emulation jobs Thomas Huth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).