qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH] configure: deprecate 32 bit build hosts
@ 2019-09-25 23:30 Alex Bennée
  2019-09-26  7:29 ` Philippe Mathieu-Daudé
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Alex Bennée @ 2019-09-25 23:30 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-riscv, Richard Henderson, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc, Alex Bennée

The 32 bit hosts are already a second class citizen especially with
support for running 64 bit guests under TCG. We are also limited by
testing as actual working 32 bit machines are getting quite rare in
developers personal menageries. For TCG supporting newer types like
Int128 is a lot harder with 32 bit calling conventions compared to
their larger bit sized cousins. Fundamentally address space is the
most useful thing for the translator to have even for a 32 bit guest a
32 bit host is quite constrained.

As far as I'm aware 32 bit KVM users are even less numerous. Even
ILP32 doesn't make much sense given the address space QEMU needs to
manage.

Lets mark these machines as deprecated so we can have the wailing and
gnashing of teeth now and look to actually dropping the support in a
couple of cycles.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Richard Henderson <richard.henderson@linaro.org>
---
 configure | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/configure b/configure
index 542f6aea3f..776fd460b5 100755
--- a/configure
+++ b/configure
@@ -728,7 +728,7 @@ ARCH=
 # Normalise host CPU name and set ARCH.
 # Note that this case should only have supported host CPUs, not guests.
 case "$cpu" in
-  ppc|ppc64|s390|s390x|sparc64|x32|riscv32|riscv64)
+  ppc64|s390|s390x|sparc64|riscv64)
     supported_cpu="yes"
   ;;
   ppc64le)
@@ -737,7 +737,6 @@ case "$cpu" in
   ;;
   i386|i486|i586|i686|i86pc|BePC)
     cpu="i386"
-    supported_cpu="yes"
   ;;
   x86_64|amd64)
     cpu="x86_64"
@@ -745,19 +744,22 @@ case "$cpu" in
   ;;
   armv*b|armv*l|arm)
     cpu="arm"
-    supported_cpu="yes"
   ;;
   aarch64)
     cpu="aarch64"
     supported_cpu="yes"
   ;;
-  mips*)
+  mips64*)
     cpu="mips"
     supported_cpu="yes"
   ;;
+  mips*)
+    cpu="mips"
+  ;;
   sparc|sun4[cdmuv])
     cpu="sparc"
-    supported_cpu="yes"
+  ;;
+  x32|riscv32)
   ;;
   *)
     # This will result in either an error or falling back to TCI later
@@ -6438,12 +6440,12 @@ if test "$supported_cpu" = "no"; then
     echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
     echo
     echo "CPU host architecture $cpu support is not currently maintained."
-    echo "The QEMU project intends to remove support for this host CPU in"
-    echo "a future release if nobody volunteers to maintain it and to"
-    echo "provide a build host for our continuous integration setup."
-    echo "configure has succeeded and you can continue to build, but"
-    echo "if you care about QEMU on this platform you should contact"
-    echo "us upstream at qemu-devel@nongnu.org."
+    echo "The QEMU project intends to remove support for all 32 bit host"
+    echo "CPUs in a future release. 64 bit hosts will need a volunteer"
+    echo "to maintain it and to provide a build host for our continuous"
+    echo "integration setup. configure has succeeded and you can continue"
+    echo "to build, but if you care about QEMU on this platform you"
+    echo "should contact us upstream at qemu-devel@nongnu.org."
 fi
 
 if test "$supported_os" = "no"; then
-- 
2.20.1



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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-25 23:30 [RFC PATCH] configure: deprecate 32 bit build hosts Alex Bennée
@ 2019-09-26  7:29 ` Philippe Mathieu-Daudé
  2019-09-26  7:50 ` Peter Maydell
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 22+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-09-26  7:29 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: qemu-riscv, Richard Henderson, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc

On 9/26/19 1:30 AM, Alex Bennée wrote:
> The 32 bit hosts are already a second class citizen especially with
> support for running 64 bit guests under TCG. We are also limited by
> testing as actual working 32 bit machines are getting quite rare in
> developers personal menageries. For TCG supporting newer types like
> Int128 is a lot harder with 32 bit calling conventions compared to
> their larger bit sized cousins. Fundamentally address space is the
> most useful thing for the translator to have even for a 32 bit guest a
> 32 bit host is quite constrained.
> 
> As far as I'm aware 32 bit KVM users are even less numerous. Even
> ILP32 doesn't make much sense given the address space QEMU needs to
> manage.
> 
> Lets mark these machines as deprecated so we can have the wailing and
> gnashing of teeth now and look to actually dropping the support in a
> couple of cycles.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> ---
>  configure | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/configure b/configure
> index 542f6aea3f..776fd460b5 100755
> --- a/configure
> +++ b/configure
> @@ -728,7 +728,7 @@ ARCH=
>  # Normalise host CPU name and set ARCH.
>  # Note that this case should only have supported host CPUs, not guests.
>  case "$cpu" in
> -  ppc|ppc64|s390|s390x|sparc64|x32|riscv32|riscv64)
> +  ppc64|s390|s390x|sparc64|riscv64)
>      supported_cpu="yes"
>    ;;
>    ppc64le)
> @@ -737,7 +737,6 @@ case "$cpu" in
>    ;;
>    i386|i486|i586|i686|i86pc|BePC)
>      cpu="i386"
> -    supported_cpu="yes"
>    ;;
>    x86_64|amd64)
>      cpu="x86_64"
> @@ -745,19 +744,22 @@ case "$cpu" in
>    ;;
>    armv*b|armv*l|arm)
>      cpu="arm"
> -    supported_cpu="yes"

I think linux-user is quite used in embedded stuff such NAS.

Eventually this public don't need edge QEMU, it might keep using QEMU
v5.0.stable until all NAS/embedded devices are 64-bit...

>    ;;
>    aarch64)
>      cpu="aarch64"
>      supported_cpu="yes"
>    ;;
> -  mips*)
> +  mips64*)
>      cpu="mips"
>      supported_cpu="yes"
>    ;;
> +  mips*)
> +    cpu="mips"

Similarly I can imagine linux-user being used on some routers.

> +  ;;
>    sparc|sun4[cdmuv])
>      cpu="sparc"
> -    supported_cpu="yes"
> +  ;;
> +  x32|riscv32)

x32 is borderline :) but yes, pointers are 32-bit.

>    ;;
>    *)
>      # This will result in either an error or falling back to TCI later
> @@ -6438,12 +6440,12 @@ if test "$supported_cpu" = "no"; then
>      echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
>      echo
>      echo "CPU host architecture $cpu support is not currently maintained."
> -    echo "The QEMU project intends to remove support for this host CPU in"
> -    echo "a future release if nobody volunteers to maintain it and to"
> -    echo "provide a build host for our continuous integration setup."
> -    echo "configure has succeeded and you can continue to build, but"
> -    echo "if you care about QEMU on this platform you should contact"
> -    echo "us upstream at qemu-devel@nongnu.org."
> +    echo "The QEMU project intends to remove support for all 32 bit host"
> +    echo "CPUs in a future release. 64 bit hosts will need a volunteer"
> +    echo "to maintain it and to provide a build host for our continuous"
> +    echo "integration setup. configure has succeeded and you can continue"
> +    echo "to build, but if you care about QEMU on this platform you"
> +    echo "should contact us upstream at qemu-devel@nongnu.org."
>  fi
>  
>  if test "$supported_os" = "no"; then
> 



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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-25 23:30 [RFC PATCH] configure: deprecate 32 bit build hosts Alex Bennée
  2019-09-26  7:29 ` Philippe Mathieu-Daudé
@ 2019-09-26  7:50 ` Peter Maydell
  2019-09-26 12:58   ` Daniel P. Berrangé
                     ` (2 more replies)
  2019-09-26  7:55 ` Thomas Huth
  2019-09-27 10:42 ` Mark Cave-Ayland
  3 siblings, 3 replies; 22+ messages in thread
From: Peter Maydell @ 2019-09-26  7:50 UTC (permalink / raw)
  To: Alex Bennée
  Cc: open list:RISC-V, Richard Henderson, QEMU Developers,
	qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc

On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The 32 bit hosts are already a second class citizen especially with
> support for running 64 bit guests under TCG. We are also limited by
> testing as actual working 32 bit machines are getting quite rare in
> developers personal menageries. For TCG supporting newer types like
> Int128 is a lot harder with 32 bit calling conventions compared to
> their larger bit sized cousins. Fundamentally address space is the
> most useful thing for the translator to have even for a 32 bit guest a
> 32 bit host is quite constrained.
>
> As far as I'm aware 32 bit KVM users are even less numerous. Even
> ILP32 doesn't make much sense given the address space QEMU needs to
> manage.

For KVM we should wait until the kernel chooses to drop support,
I think.

> @@ -745,19 +744,22 @@ case "$cpu" in
>    ;;
>    armv*b|armv*l|arm)
>      cpu="arm"
> -    supported_cpu="yes"
>    ;;

I'll leave others to voice opinions about their architectures,
but I still have 32-bit arm in my test set for builds, and
I'm pretty sure we have users (raspi users, for a start).


thanks
-- PMM


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-25 23:30 [RFC PATCH] configure: deprecate 32 bit build hosts Alex Bennée
  2019-09-26  7:29 ` Philippe Mathieu-Daudé
  2019-09-26  7:50 ` Peter Maydell
@ 2019-09-26  7:55 ` Thomas Huth
  2019-09-26 15:27   ` Alex Bennée
  2019-09-27 10:42 ` Mark Cave-Ayland
  3 siblings, 1 reply; 22+ messages in thread
From: Thomas Huth @ 2019-09-26  7:55 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: qemu-riscv, Richard Henderson, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc

On 26/09/2019 01.30, Alex Bennée wrote:
> The 32 bit hosts are already a second class citizen especially with
> support for running 64 bit guests under TCG. We are also limited by
> testing as actual working 32 bit machines are getting quite rare in
> developers personal menageries. For TCG supporting newer types like
> Int128 is a lot harder with 32 bit calling conventions compared to
> their larger bit sized cousins. Fundamentally address space is the
> most useful thing for the translator to have even for a 32 bit guest a
> 32 bit host is quite constrained.
> 
> As far as I'm aware 32 bit KVM users are even less numerous. Even
> ILP32 doesn't make much sense given the address space QEMU needs to
> manage.
> 
> Lets mark these machines as deprecated so we can have the wailing and
> gnashing of teeth now and look to actually dropping the support in a
> couple of cycles.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> ---
>  configure | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/configure b/configure
> index 542f6aea3f..776fd460b5 100755
> --- a/configure
> +++ b/configure
> @@ -728,7 +728,7 @@ ARCH=
>  # Normalise host CPU name and set ARCH.
>  # Note that this case should only have supported host CPUs, not guests.
>  case "$cpu" in
> -  ppc|ppc64|s390|s390x|sparc64|x32|riscv32|riscv64)
> +  ppc64|s390|s390x|sparc64|riscv64)

I think you can also remove "s390". "s390" is the 32-bit variant,
"s390x" is the 64-bit variant.

>      supported_cpu="yes"
>    ;;
>    ppc64le)
> @@ -737,7 +737,6 @@ case "$cpu" in
>    ;;
>    i386|i486|i586|i686|i86pc|BePC)
>      cpu="i386"
> -    supported_cpu="yes"
>    ;;
>    x86_64|amd64)
>      cpu="x86_64"
> @@ -745,19 +744,22 @@ case "$cpu" in
>    ;;
>    armv*b|armv*l|arm)
>      cpu="arm"
> -    supported_cpu="yes"
>    ;;
>    aarch64)
>      cpu="aarch64"
>      supported_cpu="yes"
>    ;;
> -  mips*)
> +  mips64*)
>      cpu="mips"
>      supported_cpu="yes"
>    ;;
> +  mips*)
> +    cpu="mips"
> +  ;;
>    sparc|sun4[cdmuv])
>      cpu="sparc"
> -    supported_cpu="yes"
> +  ;;
> +  x32|riscv32)

You forgot to add "ppc" (and "s390") here.

>    ;;
>    *)
>      # This will result in either an error or falling back to TCI later
> @@ -6438,12 +6440,12 @@ if test "$supported_cpu" = "no"; then
>      echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
>      echo
>      echo "CPU host architecture $cpu support is not currently maintained."
> -    echo "The QEMU project intends to remove support for this host CPU in"
> -    echo "a future release if nobody volunteers to maintain it and to"
> -    echo "provide a build host for our continuous integration setup."
> -    echo "configure has succeeded and you can continue to build, but"
> -    echo "if you care about QEMU on this platform you should contact"
> -    echo "us upstream at qemu-devel@nongnu.org."
> +    echo "The QEMU project intends to remove support for all 32 bit host"
> +    echo "CPUs in a future release. 64 bit hosts will need a volunteer"
> +    echo "to maintain it and to provide a build host for our continuous"
> +    echo "integration setup. configure has succeeded and you can continue"
> +    echo "to build, but if you care about QEMU on this platform you"
> +    echo "should contact us upstream at qemu-devel@nongnu.org."
>  fi
>  
>  if test "$supported_os" = "no"; then

In case this gets accepted, we also might want to deprecate the
qemu-system-i386, qemu-system-arm and qemu-system-ppc targets, since
they are AFAIK just a subset of qemu-system-x86_64, qemu-system-aarch64
and qemu-system-ppc64. But that's likely something for a later patch, I
think.

 Thomas


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26  7:50 ` Peter Maydell
@ 2019-09-26 12:58   ` Daniel P. Berrangé
  2019-09-26 13:46     ` Christian Borntraeger
  2019-09-27  8:55     ` Gerd Hoffmann
  2019-09-26 15:31   ` Alex Bennée
  2019-09-26 17:11   ` Richard Henderson
  2 siblings, 2 replies; 22+ messages in thread
From: Daniel P. Berrangé @ 2019-09-26 12:58 UTC (permalink / raw)
  To: Peter Maydell
  Cc: open list:RISC-V, Richard Henderson, QEMU Developers,
	qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc, Alex Bennée

On Thu, Sep 26, 2019 at 08:50:36AM +0100, Peter Maydell wrote:
> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
> >
> > The 32 bit hosts are already a second class citizen especially with
> > support for running 64 bit guests under TCG. We are also limited by
> > testing as actual working 32 bit machines are getting quite rare in
> > developers personal menageries. For TCG supporting newer types like
> > Int128 is a lot harder with 32 bit calling conventions compared to
> > their larger bit sized cousins. Fundamentally address space is the
> > most useful thing for the translator to have even for a 32 bit guest a
> > 32 bit host is quite constrained.
> >
> > As far as I'm aware 32 bit KVM users are even less numerous. Even
> > ILP32 doesn't make much sense given the address space QEMU needs to
> > manage.
> 
> For KVM we should wait until the kernel chooses to drop support,
> I think.

What if the kernel is waiting for QEMU to drop support too ;-P

> > @@ -745,19 +744,22 @@ case "$cpu" in
> >    ;;
> >    armv*b|armv*l|arm)
> >      cpu="arm"
> > -    supported_cpu="yes"
> >    ;;
> 
> I'll leave others to voice opinions about their architectures,
> but I still have 32-bit arm in my test set for builds, and
> I'm pretty sure we have users (raspi users, for a start).

RHEL dropped all 32-bit host support a long time ago, so Red Hat
don't care for our products.

Fedora has recently stopped building i686 kernels and thus also no
long composes i686 installs. Some users complained, but ultimately
no one cares enough to step forward as maintainers.

That leaves armv7 as the only 32-bit arch in Fedora that is somewhat
active & maintained. I don't have any real insight on whether any
armv7 (Fedora) users are making much use of QEMU/KVM though, either
system or user emulation. 

Our preference in Fedora is to have things built on every architecture
that the distro targets, but if upstream developers explicitly drop an
architecture we're not going to try to add it back.

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 :|


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 12:58   ` Daniel P. Berrangé
@ 2019-09-26 13:46     ` Christian Borntraeger
  2019-09-26 14:26       ` Thomas Huth
  2019-09-27  8:55     ` Gerd Hoffmann
  1 sibling, 1 reply; 22+ messages in thread
From: Christian Borntraeger @ 2019-09-26 13:46 UTC (permalink / raw)
  To: Daniel P. Berrangé, Peter Maydell
  Cc: open list:RISC-V, Richard Henderson, QEMU Developers,
	qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc, Alex Bennée



On 26.09.19 14:58, Daniel P. Berrangé wrote:
> On Thu, Sep 26, 2019 at 08:50:36AM +0100, Peter Maydell wrote:
>> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>
>>> The 32 bit hosts are already a second class citizen especially with
>>> support for running 64 bit guests under TCG. We are also limited by
>>> testing as actual working 32 bit machines are getting quite rare in
>>> developers personal menageries. For TCG supporting newer types like
>>> Int128 is a lot harder with 32 bit calling conventions compared to
>>> their larger bit sized cousins. Fundamentally address space is the
>>> most useful thing for the translator to have even for a 32 bit guest a
>>> 32 bit host is quite constrained.
>>>
>>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>>> ILP32 doesn't make much sense given the address space QEMU needs to
>>> manage.
>>
>> For KVM we should wait until the kernel chooses to drop support,
>> I think.
> 
> What if the kernel is waiting for QEMU to drop support too ;-P

For what its worth on kvm/s390 we never cared about implementing
32 bit. 

> 
>>> @@ -745,19 +744,22 @@ case "$cpu" in
>>>    ;;
>>>    armv*b|armv*l|arm)
>>>      cpu="arm"
>>> -    supported_cpu="yes"
>>>    ;;
>>
>> I'll leave others to voice opinions about their architectures,
>> but I still have 32-bit arm in my test set for builds, and
>> I'm pretty sure we have users (raspi users, for a start).
> 
> RHEL dropped all 32-bit host support a long time ago, so Red Hat
> don't care for our products.
> 
> Fedora has recently stopped building i686 kernels and thus also no
> long composes i686 installs. Some users complained, but ultimately
> no one cares enough to step forward as maintainers.
> 
> That leaves armv7 as the only 32-bit arch in Fedora that is somewhat
> active & maintained. I don't have any real insight on whether any
> armv7 (Fedora) users are making much use of QEMU/KVM though, either
> system or user emulation. 
> 
> Our preference in Fedora is to have things built on every architecture
> that the distro targets, but if upstream developers explicitly drop an
> architecture we're not going to try to add it back.
> 
> Regards,
> Daniel
> 



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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 13:46     ` Christian Borntraeger
@ 2019-09-26 14:26       ` Thomas Huth
  2019-09-26 15:27         ` Alex Bennée
  0 siblings, 1 reply; 22+ messages in thread
From: Thomas Huth @ 2019-09-26 14:26 UTC (permalink / raw)
  To: Christian Borntraeger, Daniel P. Berrangé,
	Peter Maydell, Alex Bennée
  Cc: open list:RISC-V, Richard Henderson, QEMU Developers,
	qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc

On 26/09/2019 15.46, Christian Borntraeger wrote:
> 
> 
> On 26.09.19 14:58, Daniel P. Berrangé wrote:
>> On Thu, Sep 26, 2019 at 08:50:36AM +0100, Peter Maydell wrote:
>>> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>
>>>> The 32 bit hosts are already a second class citizen especially with
>>>> support for running 64 bit guests under TCG. We are also limited by
>>>> testing as actual working 32 bit machines are getting quite rare in
>>>> developers personal menageries. For TCG supporting newer types like
>>>> Int128 is a lot harder with 32 bit calling conventions compared to
>>>> their larger bit sized cousins. Fundamentally address space is the
>>>> most useful thing for the translator to have even for a 32 bit guest a
>>>> 32 bit host is quite constrained.
>>>>
>>>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>>>> ILP32 doesn't make much sense given the address space QEMU needs to
>>>> manage.
>>>
>>> For KVM we should wait until the kernel chooses to drop support,
>>> I think.
>>
>> What if the kernel is waiting for QEMU to drop support too ;-P
> 
> For what its worth on kvm/s390 we never cared about implementing
> 32 bit. 

Looking at tcg/s390/tcg-target.inc.c :

...
/* We only support generating code for 64-bit mode.  */
#if TCG_TARGET_REG_BITS != 64
#error "unsupported code generation mode"
#endif
...

... it seems to me that TCG does not support 32-bit on s390 either. I
think we can remove s390 (32-bit) from the list completely?

 Thomas


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26  7:55 ` Thomas Huth
@ 2019-09-26 15:27   ` Alex Bennée
  0 siblings, 0 replies; 22+ messages in thread
From: Alex Bennée @ 2019-09-26 15:27 UTC (permalink / raw)
  To: Thomas Huth
  Cc: qemu-riscv, Richard Henderson, qemu-devel, qemu-discuss,
	qemu-s390x, qemu-arm, qemu-ppc


Thomas Huth <thuth@redhat.com> writes:

> On 26/09/2019 01.30, Alex Bennée wrote:
>> The 32 bit hosts are already a second class citizen especially with
>> support for running 64 bit guests under TCG. We are also limited by
>> testing as actual working 32 bit machines are getting quite rare in
>> developers personal menageries. For TCG supporting newer types like
>> Int128 is a lot harder with 32 bit calling conventions compared to
>> their larger bit sized cousins. Fundamentally address space is the
>> most useful thing for the translator to have even for a 32 bit guest a
>> 32 bit host is quite constrained.
>>
>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>> ILP32 doesn't make much sense given the address space QEMU needs to
>> manage.
>>
>> Lets mark these machines as deprecated so we can have the wailing and
>> gnashing of teeth now and look to actually dropping the support in a
>> couple of cycles.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Cc: Richard Henderson <richard.henderson@linaro.org>
>> ---
>>  configure | 24 +++++++++++++-----------
>>  1 file changed, 13 insertions(+), 11 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 542f6aea3f..776fd460b5 100755
>> --- a/configure
>> +++ b/configure
>> @@ -728,7 +728,7 @@ ARCH=
>>  # Normalise host CPU name and set ARCH.
>>  # Note that this case should only have supported host CPUs, not guests.
>>  case "$cpu" in
>> -  ppc|ppc64|s390|s390x|sparc64|x32|riscv32|riscv64)
>> +  ppc64|s390|s390x|sparc64|riscv64)
>
> I think you can also remove "s390". "s390" is the 32-bit variant,
> "s390x" is the 64-bit variant.
>
>>      supported_cpu="yes"
>>    ;;
>>    ppc64le)
>> @@ -737,7 +737,6 @@ case "$cpu" in
>>    ;;
>>    i386|i486|i586|i686|i86pc|BePC)
>>      cpu="i386"
>> -    supported_cpu="yes"
>>    ;;
>>    x86_64|amd64)
>>      cpu="x86_64"
>> @@ -745,19 +744,22 @@ case "$cpu" in
>>    ;;
>>    armv*b|armv*l|arm)
>>      cpu="arm"
>> -    supported_cpu="yes"
>>    ;;
>>    aarch64)
>>      cpu="aarch64"
>>      supported_cpu="yes"
>>    ;;
>> -  mips*)
>> +  mips64*)
>>      cpu="mips"
>>      supported_cpu="yes"
>>    ;;
>> +  mips*)
>> +    cpu="mips"
>> +  ;;
>>    sparc|sun4[cdmuv])
>>      cpu="sparc"
>> -    supported_cpu="yes"
>> +  ;;
>> +  x32|riscv32)
>
> You forgot to add "ppc" (and "s390") here.
>
>>    ;;
>>    *)
>>      # This will result in either an error or falling back to TCI later
>> @@ -6438,12 +6440,12 @@ if test "$supported_cpu" = "no"; then
>>      echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
>>      echo
>>      echo "CPU host architecture $cpu support is not currently maintained."
>> -    echo "The QEMU project intends to remove support for this host CPU in"
>> -    echo "a future release if nobody volunteers to maintain it and to"
>> -    echo "provide a build host for our continuous integration setup."
>> -    echo "configure has succeeded and you can continue to build, but"
>> -    echo "if you care about QEMU on this platform you should contact"
>> -    echo "us upstream at qemu-devel@nongnu.org."
>> +    echo "The QEMU project intends to remove support for all 32 bit host"
>> +    echo "CPUs in a future release. 64 bit hosts will need a volunteer"
>> +    echo "to maintain it and to provide a build host for our continuous"
>> +    echo "integration setup. configure has succeeded and you can continue"
>> +    echo "to build, but if you care about QEMU on this platform you"
>> +    echo "should contact us upstream at qemu-devel@nongnu.org."
>>  fi
>>
>>  if test "$supported_os" = "no"; then
>
> In case this gets accepted, we also might want to deprecate the
> qemu-system-i386, qemu-system-arm and qemu-system-ppc targets, since
> they are AFAIK just a subset of qemu-system-x86_64, qemu-system-aarch64
> and qemu-system-ppc64. But that's likely something for a later patch, I
> think.

Yes this is purely for the host side. I'm not intending to deprecate any
guest support.

>
>  Thomas


--
Alex Bennée


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 14:26       ` Thomas Huth
@ 2019-09-26 15:27         ` Alex Bennée
  2019-09-26 16:11           ` Alistair Francis
  0 siblings, 1 reply; 22+ messages in thread
From: Alex Bennée @ 2019-09-26 15:27 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Peter Maydell, Daniel P. Berrangé,
	Richard Henderson, QEMU Developers, qemu-discuss,
	Christian Borntraeger, qemu-s390x, qemu-arm, qemu-ppc,
	open list:RISC-V


Thomas Huth <thuth@redhat.com> writes:

> On 26/09/2019 15.46, Christian Borntraeger wrote:
>>
>>
>> On 26.09.19 14:58, Daniel P. Berrangé wrote:
>>> On Thu, Sep 26, 2019 at 08:50:36AM +0100, Peter Maydell wrote:
>>>> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>>>>>
>>>>> The 32 bit hosts are already a second class citizen especially with
>>>>> support for running 64 bit guests under TCG. We are also limited by
>>>>> testing as actual working 32 bit machines are getting quite rare in
>>>>> developers personal menageries. For TCG supporting newer types like
>>>>> Int128 is a lot harder with 32 bit calling conventions compared to
>>>>> their larger bit sized cousins. Fundamentally address space is the
>>>>> most useful thing for the translator to have even for a 32 bit guest a
>>>>> 32 bit host is quite constrained.
>>>>>
>>>>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>>>>> ILP32 doesn't make much sense given the address space QEMU needs to
>>>>> manage.
>>>>
>>>> For KVM we should wait until the kernel chooses to drop support,
>>>> I think.
>>>
>>> What if the kernel is waiting for QEMU to drop support too ;-P
>>
>> For what its worth on kvm/s390 we never cared about implementing
>> 32 bit.
>
> Looking at tcg/s390/tcg-target.inc.c :
>
> ...
> /* We only support generating code for 64-bit mode.  */
> #if TCG_TARGET_REG_BITS != 64
> #error "unsupported code generation mode"
> #endif
> ...
>
> ... it seems to me that TCG does not support 32-bit on s390 either. I
> think we can remove s390 (32-bit) from the list completely?

It's the same for riscv32 I think.

>
>  Thomas


--
Alex Bennée


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26  7:50 ` Peter Maydell
  2019-09-26 12:58   ` Daniel P. Berrangé
@ 2019-09-26 15:31   ` Alex Bennée
  2019-09-26 17:11   ` Richard Henderson
  2 siblings, 0 replies; 22+ messages in thread
From: Alex Bennée @ 2019-09-26 15:31 UTC (permalink / raw)
  To: Peter Maydell
  Cc: open list:RISC-V, Richard Henderson, QEMU Developers,
	qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc


Peter Maydell <peter.maydell@linaro.org> writes:

> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The 32 bit hosts are already a second class citizen especially with
>> support for running 64 bit guests under TCG. We are also limited by
>> testing as actual working 32 bit machines are getting quite rare in
>> developers personal menageries. For TCG supporting newer types like
>> Int128 is a lot harder with 32 bit calling conventions compared to
>> their larger bit sized cousins. Fundamentally address space is the
>> most useful thing for the translator to have even for a 32 bit guest a
>> 32 bit host is quite constrained.
>>
>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>> ILP32 doesn't make much sense given the address space QEMU needs to
>> manage.
>
> For KVM we should wait until the kernel chooses to drop support,
> I think.

I can certainly do that - although I'd still like to know who actually
uses 32 bit kvm support these days.

>
>> @@ -745,19 +744,22 @@ case "$cpu" in
>>    ;;
>>    armv*b|armv*l|arm)
>>      cpu="arm"
>> -    supported_cpu="yes"
>>    ;;
>
> I'll leave others to voice opinions about their architectures,
> but I still have 32-bit arm in my test set for builds, and
> I'm pretty sure we have users (raspi users, for a start).

raspi is probably the most common one because of the 32 bit userspace
they use even though they are running on 64 bit chips.

>
>
> thanks
> -- PMM


--
Alex Bennée


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 15:27         ` Alex Bennée
@ 2019-09-26 16:11           ` Alistair Francis
  2019-09-26 19:02             ` Alex Bennée
  0 siblings, 1 reply; 22+ messages in thread
From: Alistair Francis @ 2019-09-26 16:11 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Peter Maydell, Thomas Huth, Daniel P. Berrangé,
	Richard Henderson, QEMU Developers, qemu-discuss,
	Christian Borntraeger, qemu-s390x, qemu-arm, open list:New World,
	open list:RISC-V

On Thu, Sep 26, 2019 at 8:41 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>
>
> Thomas Huth <thuth@redhat.com> writes:
>
> > On 26/09/2019 15.46, Christian Borntraeger wrote:
> >>
> >>
> >> On 26.09.19 14:58, Daniel P. Berrangé wrote:
> >>> On Thu, Sep 26, 2019 at 08:50:36AM +0100, Peter Maydell wrote:
> >>>> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
> >>>>>
> >>>>> The 32 bit hosts are already a second class citizen especially with
> >>>>> support for running 64 bit guests under TCG. We are also limited by
> >>>>> testing as actual working 32 bit machines are getting quite rare in
> >>>>> developers personal menageries. For TCG supporting newer types like
> >>>>> Int128 is a lot harder with 32 bit calling conventions compared to
> >>>>> their larger bit sized cousins. Fundamentally address space is the
> >>>>> most useful thing for the translator to have even for a 32 bit guest a
> >>>>> 32 bit host is quite constrained.
> >>>>>
> >>>>> As far as I'm aware 32 bit KVM users are even less numerous. Even
> >>>>> ILP32 doesn't make much sense given the address space QEMU needs to
> >>>>> manage.
> >>>>
> >>>> For KVM we should wait until the kernel chooses to drop support,
> >>>> I think.
> >>>
> >>> What if the kernel is waiting for QEMU to drop support too ;-P
> >>
> >> For what its worth on kvm/s390 we never cared about implementing
> >> 32 bit.
> >
> > Looking at tcg/s390/tcg-target.inc.c :
> >
> > ...
> > /* We only support generating code for 64-bit mode.  */
> > #if TCG_TARGET_REG_BITS != 64
> > #error "unsupported code generation mode"
> > #endif
> > ...
> >
> > ... it seems to me that TCG does not support 32-bit on s390 either. I
> > think we can remove s390 (32-bit) from the list completely?
>
> It's the same for riscv32 I think.

I think riscv32 host *should* work, although I don't think it was ever tested.

Considering that we have enough trouble keeping the riscv32 kernel
booting it's probably ok to drop it from QEMU.

Alistair

>
> >
> >  Thomas
>
>
> --
> Alex Bennée
>


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26  7:50 ` Peter Maydell
  2019-09-26 12:58   ` Daniel P. Berrangé
  2019-09-26 15:31   ` Alex Bennée
@ 2019-09-26 17:11   ` Richard Henderson
  2019-09-30  9:25     ` Daniel P. Berrangé
  2 siblings, 1 reply; 22+ messages in thread
From: Richard Henderson @ 2019-09-26 17:11 UTC (permalink / raw)
  To: Peter Maydell, Alex Bennée
  Cc: open list:RISC-V, QEMU Developers, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc

On 9/26/19 12:50 AM, Peter Maydell wrote:
> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The 32 bit hosts are already a second class citizen especially with
>> support for running 64 bit guests under TCG. We are also limited by
>> testing as actual working 32 bit machines are getting quite rare in
>> developers personal menageries. For TCG supporting newer types like
>> Int128 is a lot harder with 32 bit calling conventions compared to
>> their larger bit sized cousins. Fundamentally address space is the
>> most useful thing for the translator to have even for a 32 bit guest a
>> 32 bit host is quite constrained.
>>
>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>> ILP32 doesn't make much sense given the address space QEMU needs to
>> manage.
> 
> For KVM we should wait until the kernel chooses to drop support,
> I think.

Agreed.  I think this discussion should be more about TCG.

>> @@ -745,19 +744,22 @@ case "$cpu" in
>>    ;;
>>    armv*b|armv*l|arm)
>>      cpu="arm"
>> -    supported_cpu="yes"
>>    ;;
> 
> I'll leave others to voice opinions about their architectures,
> but I still have 32-bit arm in my test set for builds, and
> I'm pretty sure we have users (raspi users, for a start).

I'd really like to know what raspi users might be using qemu for.  Depending on
that answer, perhaps it would be sufficient for arm32 tcg to only support
32-bit guests.

For context, the discussion that Alex and I were having was about int128_t, and
how to support that directly in tcg (especially to/from helpers), and how that
might be vastly easier if we didn't have to consider 32-bit hosts.


r~


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 16:11           ` Alistair Francis
@ 2019-09-26 19:02             ` Alex Bennée
  0 siblings, 0 replies; 22+ messages in thread
From: Alex Bennée @ 2019-09-26 19:02 UTC (permalink / raw)
  To: Alistair Francis
  Cc: Peter Maydell, Thomas Huth, Daniel P. Berrangé,
	Richard Henderson, QEMU Developers, qemu-discuss,
	Christian Borntraeger, qemu-s390x, qemu-arm, open list:New World,
	open list:RISC-V


Alistair Francis <alistair23@gmail.com> writes:

> On Thu, Sep 26, 2019 at 8:41 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>>
>> Thomas Huth <thuth@redhat.com> writes:
>>
>> > On 26/09/2019 15.46, Christian Borntraeger wrote:
>> >>
>> >>
>> >> On 26.09.19 14:58, Daniel P. Berrangé wrote:
>> >>> On Thu, Sep 26, 2019 at 08:50:36AM +0100, Peter Maydell wrote:
>> >>>> On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
>> >>>>>
>> >>>>> The 32 bit hosts are already a second class citizen especially with
>> >>>>> support for running 64 bit guests under TCG. We are also limited by
>> >>>>> testing as actual working 32 bit machines are getting quite rare in
>> >>>>> developers personal menageries. For TCG supporting newer types like
>> >>>>> Int128 is a lot harder with 32 bit calling conventions compared to
>> >>>>> their larger bit sized cousins. Fundamentally address space is the
>> >>>>> most useful thing for the translator to have even for a 32 bit guest a
>> >>>>> 32 bit host is quite constrained.
>> >>>>>
>> >>>>> As far as I'm aware 32 bit KVM users are even less numerous. Even
>> >>>>> ILP32 doesn't make much sense given the address space QEMU needs to
>> >>>>> manage.
>> >>>>
>> >>>> For KVM we should wait until the kernel chooses to drop support,
>> >>>> I think.
>> >>>
>> >>> What if the kernel is waiting for QEMU to drop support too ;-P
>> >>
>> >> For what its worth on kvm/s390 we never cared about implementing
>> >> 32 bit.
>> >
>> > Looking at tcg/s390/tcg-target.inc.c :
>> >
>> > ...
>> > /* We only support generating code for 64-bit mode.  */
>> > #if TCG_TARGET_REG_BITS != 64
>> > #error "unsupported code generation mode"
>> > #endif
>> > ...
>> >
>> > ... it seems to me that TCG does not support 32-bit on s390 either. I
>> > think we can remove s390 (32-bit) from the list completely?
>>
>> It's the same for riscv32 I think.
>
> I think riscv32 host *should* work, although I don't think it was ever
> tested.

You certainly don't support oversized guests:

  /* We don't support oversize guests */
  QEMU_BUILD_BUG_ON(TCG_TARGET_REG_BITS < TARGET_LONG_BITS);

>
> Considering that we have enough trouble keeping the riscv32 kernel
> booting it's probably ok to drop it from QEMU.
>
> Alistair
>
>>
>> >
>> >  Thomas
>>
>>
>> --
>> Alex Bennée
>>


--
Alex Bennée


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 12:58   ` Daniel P. Berrangé
  2019-09-26 13:46     ` Christian Borntraeger
@ 2019-09-27  8:55     ` Gerd Hoffmann
  1 sibling, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2019-09-27  8:55 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Peter Maydell, open list:RISC-V, Richard Henderson,
	QEMU Developers, qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc,
	Alex Bennée

  Hi,

> That leaves armv7 as the only 32-bit arch in Fedora that is somewhat
> active & maintained. I don't have any real insight on whether any
> armv7 (Fedora) users are making much use of QEMU/KVM though, either
> system or user emulation. 

Played with system emulation a while back.  I doubt this is used much
in practice.  It's very slow for various reasons (no gic, no armv8 arch
updates to support kvm virt better, slow sdcard/usb I/O).  TCG on a
beefy x86 box is roughly the same speed.  Also 1G of memory isn't that
much even without considering virtual machines.

The rpi4 with 4G (disclaimer: don't have one) probably works better.
But note they are finally working on a 64bit kernel for raspbian,
which I expect is only a first step for better 64bit support.

cheers,
  Gerd



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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-25 23:30 [RFC PATCH] configure: deprecate 32 bit build hosts Alex Bennée
                   ` (2 preceding siblings ...)
  2019-09-26  7:55 ` Thomas Huth
@ 2019-09-27 10:42 ` Mark Cave-Ayland
  3 siblings, 0 replies; 22+ messages in thread
From: Mark Cave-Ayland @ 2019-09-27 10:42 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: qemu-riscv, Richard Henderson, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc

On 26/09/2019 00:30, Alex Bennée wrote:

> The 32 bit hosts are already a second class citizen especially with
> support for running 64 bit guests under TCG. We are also limited by
> testing as actual working 32 bit machines are getting quite rare in
> developers personal menageries. For TCG supporting newer types like
> Int128 is a lot harder with 32 bit calling conventions compared to
> their larger bit sized cousins. Fundamentally address space is the
> most useful thing for the translator to have even for a 32 bit guest a
> 32 bit host is quite constrained.
> 
> As far as I'm aware 32 bit KVM users are even less numerous. Even
> ILP32 doesn't make much sense given the address space QEMU needs to
> manage.
> 
> Lets mark these machines as deprecated so we can have the wailing and
> gnashing of teeth now and look to actually dropping the support in a
> couple of cycles.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> ---
>  configure | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/configure b/configure
> index 542f6aea3f..776fd460b5 100755
> --- a/configure
> +++ b/configure
> @@ -728,7 +728,7 @@ ARCH=
>  # Normalise host CPU name and set ARCH.
>  # Note that this case should only have supported host CPUs, not guests.
>  case "$cpu" in
> -  ppc|ppc64|s390|s390x|sparc64|x32|riscv32|riscv64)
> +  ppc64|s390|s390x|sparc64|riscv64)
>      supported_cpu="yes"
>    ;;
>    ppc64le)
> @@ -737,7 +737,6 @@ case "$cpu" in
>    ;;
>    i386|i486|i586|i686|i86pc|BePC)
>      cpu="i386"
> -    supported_cpu="yes"
>    ;;
>    x86_64|amd64)
>      cpu="x86_64"
> @@ -745,19 +744,22 @@ case "$cpu" in
>    ;;
>    armv*b|armv*l|arm)
>      cpu="arm"
> -    supported_cpu="yes"
>    ;;
>    aarch64)
>      cpu="aarch64"
>      supported_cpu="yes"
>    ;;
> -  mips*)
> +  mips64*)
>      cpu="mips"
>      supported_cpu="yes"
>    ;;
> +  mips*)
> +    cpu="mips"
> +  ;;
>    sparc|sun4[cdmuv])
>      cpu="sparc"
> -    supported_cpu="yes"
> +  ;;
> +  x32|riscv32)
>    ;;
>    *)
>      # This will result in either an error or falling back to TCI later
> @@ -6438,12 +6440,12 @@ if test "$supported_cpu" = "no"; then
>      echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
>      echo
>      echo "CPU host architecture $cpu support is not currently maintained."
> -    echo "The QEMU project intends to remove support for this host CPU in"
> -    echo "a future release if nobody volunteers to maintain it and to"
> -    echo "provide a build host for our continuous integration setup."
> -    echo "configure has succeeded and you can continue to build, but"
> -    echo "if you care about QEMU on this platform you should contact"
> -    echo "us upstream at qemu-devel@nongnu.org."
> +    echo "The QEMU project intends to remove support for all 32 bit host"
> +    echo "CPUs in a future release. 64 bit hosts will need a volunteer"
> +    echo "to maintain it and to provide a build host for our continuous"
> +    echo "integration setup. configure has succeeded and you can continue"
> +    echo "to build, but if you care about QEMU on this platform you"
> +    echo "should contact us upstream at qemu-devel@nongnu.org."
>  fi
>  
>  if test "$supported_os" = "no"; then

FWIW I still use my Mac Mini G4 (with KVM) to help debug bits of TCG for
qemu-system-ppc and so I would certainly miss this for bits of my Mac work.

Is it possible to reach a compromise based on host/target i.e. allow 32-bit hosts to
only run targets up to 32-bits? I'd only ever want to use qemu-system-ppc on the Mac
Mini for testing: for qemu-system-ppc64 it is clearly much quicker just to use the
nearest x86 box.


ATB,

Mark.


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-26 17:11   ` Richard Henderson
@ 2019-09-30  9:25     ` Daniel P. Berrangé
       [not found]       ` <87impakrky.fsf@linaro.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Daniel P. Berrangé @ 2019-09-30  9:25 UTC (permalink / raw)
  To: Richard Henderson
  Cc: Peter Maydell, open list:RISC-V, QEMU Developers, qemu-discuss,
	qemu-s390x, qemu-arm, qemu-ppc, Alex Bennée

On Thu, Sep 26, 2019 at 10:11:05AM -0700, Richard Henderson wrote:
> On 9/26/19 12:50 AM, Peter Maydell wrote:
> > On Thu, 26 Sep 2019 at 00:31, Alex Bennée <alex.bennee@linaro.org> wrote:
> >>
> >> The 32 bit hosts are already a second class citizen especially with
> >> support for running 64 bit guests under TCG. We are also limited by
> >> testing as actual working 32 bit machines are getting quite rare in
> >> developers personal menageries. For TCG supporting newer types like
> >> Int128 is a lot harder with 32 bit calling conventions compared to
> >> their larger bit sized cousins. Fundamentally address space is the
> >> most useful thing for the translator to have even for a 32 bit guest a
> >> 32 bit host is quite constrained.
> >>
> >> As far as I'm aware 32 bit KVM users are even less numerous. Even
> >> ILP32 doesn't make much sense given the address space QEMU needs to
> >> manage.
> > 
> > For KVM we should wait until the kernel chooses to drop support,
> > I think.
> 
> Agreed.  I think this discussion should be more about TCG.
> 
> >> @@ -745,19 +744,22 @@ case "$cpu" in
> >>    ;;
> >>    armv*b|armv*l|arm)
> >>      cpu="arm"
> >> -    supported_cpu="yes"
> >>    ;;
> > 
> > I'll leave others to voice opinions about their architectures,
> > but I still have 32-bit arm in my test set for builds, and
> > I'm pretty sure we have users (raspi users, for a start).
> 
> I'd really like to know what raspi users might be using qemu for.  Depending on
> that answer, perhaps it would be sufficient for arm32 tcg to only support
> 32-bit guests.

I asked on the Fedora development lists for feedback on the idea of
dropping QEMU 32-bit host support

  https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/TPAVIC6YANGP2NK4RUOP7OCIOIFIOV3A/

The response was rather underwhealming to say the least, with only one
person explicitly expressing a desire for QEMU to keep 32-bit host
support for armv7l.

The main interesting thing I learnt was that even with 64-bit Raspberry
Pi hardware, it can be desirable to run 32-bit Raspberry Pi supporting
distro, supposedly for performance benefits.

> For context, the discussion that Alex and I were having was about int128_t, and
> how to support that directly in tcg (especially to/from helpers), and how that
> might be vastly easier if we didn't have to consider 32-bit hosts.

I know nothing about TCG internals, but Is it viable to implement int128_t
support only in 64-bit host, leaving 32-bit hosts without it ? Or is this
really a blocking item that is holding back 64-bit host features.

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 :|


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
       [not found]       ` <87impakrky.fsf@linaro.org>
@ 2019-09-30 10:36         ` Peter Maydell
  2019-09-30 11:41         ` Peter Maydell
  1 sibling, 0 replies; 22+ messages in thread
From: Peter Maydell @ 2019-09-30 10:36 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Daniel P. Berrangé,
	Richard Henderson, QEMU Developers, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc, open list:RISC-V

On Mon, 30 Sep 2019 at 11:26, Alex Bennée <alex.bennee@linaro.org> wrote:
> So if lots of people still want 32 bit host support for TCG guests we
> can probably come up with something that keeps existing functionality
> ticking over while leaving the newer architectural features to 64 bit
> hosts only.

I don't think we should do that -- QEMU should offer the same
(emulated) functionality regardless of host.

thanks
-- PMM


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
       [not found]       ` <87impakrky.fsf@linaro.org>
  2019-09-30 10:36         ` Peter Maydell
@ 2019-09-30 11:41         ` Peter Maydell
  2019-10-01 17:56           ` Mark Cave-Ayland
  1 sibling, 1 reply; 22+ messages in thread
From: Peter Maydell @ 2019-09-30 11:41 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Daniel P. Berrangé,
	Richard Henderson, QEMU Developers, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc, open list:RISC-V

On Mon, 30 Sep 2019 at 11:26, Alex Bennée <alex.bennee@linaro.org> wrote:
> The int128 support is due to the fact we are going to start to see newer
> architectures with things like 128 bit shadow capability registers and
> they will be a pain to shuffle around in 32 bit generated host code as
> well as requiring writing new extra plumbing for TCG's pre/post amble to
> pass them back and forth between C and generated code. These guest
> architectures may not even be full 64 bit guests so it's not quite as
> simple as saying you can't have 64 bit guests on a 32 bit host.

I think that for int128_t in particular, the ideal answer is
that if the compiler developers want to introduce a new
abstraction like that, they should support it on all targets,
not just half of them...

thanks
-- PMM


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-09-30 11:41         ` Peter Maydell
@ 2019-10-01 17:56           ` Mark Cave-Ayland
  2019-10-01 18:02             ` Richard Henderson
  0 siblings, 1 reply; 22+ messages in thread
From: Mark Cave-Ayland @ 2019-10-01 17:56 UTC (permalink / raw)
  To: Peter Maydell, Alex Bennée
  Cc: Daniel P. Berrangé,
	Richard Henderson, QEMU Developers, qemu-discuss, qemu-s390x,
	qemu-arm, qemu-ppc, open list:RISC-V

On 30/09/2019 12:41, Peter Maydell wrote:

> On Mon, 30 Sep 2019 at 11:26, Alex Bennée <alex.bennee@linaro.org> wrote:
>> The int128 support is due to the fact we are going to start to see newer
>> architectures with things like 128 bit shadow capability registers and
>> they will be a pain to shuffle around in 32 bit generated host code as
>> well as requiring writing new extra plumbing for TCG's pre/post amble to
>> pass them back and forth between C and generated code. These guest
>> architectures may not even be full 64 bit guests so it's not quite as
>> simple as saying you can't have 64 bit guests on a 32 bit host.
> 
> I think that for int128_t in particular, the ideal answer is
> that if the compiler developers want to introduce a new
> abstraction like that, they should support it on all targets,
> not just half of them...

Just out of interest, which host/compiler combinations don't currently implement
int128_t?


ATB,

Mark.


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-10-01 17:56           ` Mark Cave-Ayland
@ 2019-10-01 18:02             ` Richard Henderson
  2019-10-02  9:10               ` Daniel P. Berrangé
  0 siblings, 1 reply; 22+ messages in thread
From: Richard Henderson @ 2019-10-01 18:02 UTC (permalink / raw)
  To: Mark Cave-Ayland, Peter Maydell, Alex Bennée
  Cc: Daniel P. Berrangé,
	QEMU Developers, qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc,
	open list:RISC-V

On 10/1/19 10:56 AM, Mark Cave-Ayland wrote:
> Just out of interest, which host/compiler combinations don't currently implement
> int128_t?

GCC only implements int128_t for 64-bit targets.


r~


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-10-01 18:02             ` Richard Henderson
@ 2019-10-02  9:10               ` Daniel P. Berrangé
  2019-10-02 15:16                 ` Richard Henderson
  0 siblings, 1 reply; 22+ messages in thread
From: Daniel P. Berrangé @ 2019-10-02  9:10 UTC (permalink / raw)
  To: Richard Henderson
  Cc: Peter Maydell, open list:RISC-V, Mark Cave-Ayland,
	QEMU Developers, qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc,
	Alex Bennée

On Tue, Oct 01, 2019 at 11:02:14AM -0700, Richard Henderson wrote:
> On 10/1/19 10:56 AM, Mark Cave-Ayland wrote:
> > Just out of interest, which host/compiler combinations don't currently implement
> > int128_t?
> 
> GCC only implements int128_t for 64-bit targets.

QEMU probes for that during configure  and sets CONFIG_INT128

If I'm reading correctly include/qemu/int128.h then provides a
fallback type based on a struct with two int64s.

This has some inconvenience though as you have to use the the (inline)
function calls for all the basic operands and will be less efficient
when using the fallback.

Presumably this is not viable for TCG ?

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 :|


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

* Re: [RFC PATCH] configure: deprecate 32 bit build hosts
  2019-10-02  9:10               ` Daniel P. Berrangé
@ 2019-10-02 15:16                 ` Richard Henderson
  0 siblings, 0 replies; 22+ messages in thread
From: Richard Henderson @ 2019-10-02 15:16 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Peter Maydell, open list:RISC-V, Mark Cave-Ayland,
	QEMU Developers, qemu-discuss, qemu-s390x, qemu-arm, qemu-ppc,
	Alex Bennée

On 10/2/19 2:10 AM, Daniel P. Berrangé wrote:
>> GCC only implements int128_t for 64-bit targets.
> 
> QEMU probes for that during configure  and sets CONFIG_INT128
> 
> If I'm reading correctly include/qemu/int128.h then provides a
> fallback type based on a struct with two int64s.
> 
> This has some inconvenience though as you have to use the the (inline)
> function calls for all the basic operands and will be less efficient
> when using the fallback.
> 
> Presumably this is not viable for TCG ?

A structure (for some ABIs) may be passed and returned by invisible reference.
 It's not impossible (nothing's impossible), but it adds previously unnecessary
complexity to allocate that storage on the jit stack.

Actually manipulating one 128-bit value consumes 4/6 of the i386 registers,
which I can well imagine could wind up causing problems.  Certainly
manipulating two values at once is out of the question.  That's less of a
problem for arm and mips.

Anyway, all of the pain points go away if we assume 64-bit.


r~


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

end of thread, other threads:[~2019-10-02 15:23 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-25 23:30 [RFC PATCH] configure: deprecate 32 bit build hosts Alex Bennée
2019-09-26  7:29 ` Philippe Mathieu-Daudé
2019-09-26  7:50 ` Peter Maydell
2019-09-26 12:58   ` Daniel P. Berrangé
2019-09-26 13:46     ` Christian Borntraeger
2019-09-26 14:26       ` Thomas Huth
2019-09-26 15:27         ` Alex Bennée
2019-09-26 16:11           ` Alistair Francis
2019-09-26 19:02             ` Alex Bennée
2019-09-27  8:55     ` Gerd Hoffmann
2019-09-26 15:31   ` Alex Bennée
2019-09-26 17:11   ` Richard Henderson
2019-09-30  9:25     ` Daniel P. Berrangé
     [not found]       ` <87impakrky.fsf@linaro.org>
2019-09-30 10:36         ` Peter Maydell
2019-09-30 11:41         ` Peter Maydell
2019-10-01 17:56           ` Mark Cave-Ayland
2019-10-01 18:02             ` Richard Henderson
2019-10-02  9:10               ` Daniel P. Berrangé
2019-10-02 15:16                 ` Richard Henderson
2019-09-26  7:55 ` Thomas Huth
2019-09-26 15:27   ` Alex Bennée
2019-09-27 10:42 ` Mark Cave-Ayland

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 NNTP newsgroup(s).