diff mbox series

[kvm-unit-tests] arm64: TCG: Use max cpu type

Message ID 20220603111356.1480720-1-drjones@redhat.com (mailing list archive)
State New, archived
Headers show
Series [kvm-unit-tests] arm64: TCG: Use max cpu type | expand

Commit Message

Andrew Jones June 3, 2022, 11:13 a.m. UTC
The max cpu type is a better default cpu type for running tests
with TCG as it provides the maximum possible feature set. Also,
the max cpu type was introduced in QEMU v2.12, so we should be
safe to switch to it at this point.

There's also a 32-bit arm max cpu type, but we leave the default
as cortex-a15, because compilation requires we specify for which
processor we want to compile and there's no such thing as a 'max'.

Signed-off-by: Andrew Jones <drjones@redhat.com>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Cornelia Huck June 3, 2022, 12:21 p.m. UTC | #1
On Fri, Jun 03 2022, Andrew Jones <drjones@redhat.com> wrote:

> The max cpu type is a better default cpu type for running tests
> with TCG as it provides the maximum possible feature set. Also,
> the max cpu type was introduced in QEMU v2.12, so we should be
> safe to switch to it at this point.
>
> There's also a 32-bit arm max cpu type, but we leave the default
> as cortex-a15, because compilation requires we specify for which
> processor we want to compile and there's no such thing as a 'max'.
>
> Signed-off-by: Andrew Jones <drjones@redhat.com>
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 5b7daac3c6e8..1474dde2c70d 100755
> --- a/configure
> +++ b/configure
> @@ -223,7 +223,7 @@ fi
>  [ -z "$processor" ] && processor="$arch"
>  
>  if [ "$processor" = "arm64" ]; then
> -    processor="cortex-a57"
> +    processor="max"
>  elif [ "$processor" = "arm" ]; then
>      processor="cortex-a15"
>  fi

This looks correct, but the "processor" usage is confusing, as it seems
to cover two different things:

- what processor to compile for; this is what configure help claims
  "processor" is used for, but it only seems to have that effect on
  32-bit arm
- which cpu model to use for tcg on 32-bit and 64-bit arm (other archs
  don't seem to care)

So, I wonder whether it would be less confusing to drop setting
"processor" for arm64, and set the cpu models for tcg in arm/run (if
none have been specified)?
Andrew Jones June 3, 2022, 1:15 p.m. UTC | #2
On Fri, Jun 03, 2022 at 02:21:10PM +0200, Cornelia Huck wrote:
> On Fri, Jun 03 2022, Andrew Jones <drjones@redhat.com> wrote:
> 
> > The max cpu type is a better default cpu type for running tests
> > with TCG as it provides the maximum possible feature set. Also,
> > the max cpu type was introduced in QEMU v2.12, so we should be
> > safe to switch to it at this point.
> >
> > There's also a 32-bit arm max cpu type, but we leave the default
> > as cortex-a15, because compilation requires we specify for which
> > processor we want to compile and there's no such thing as a 'max'.
> >
> > Signed-off-by: Andrew Jones <drjones@redhat.com>
> > ---
> >  configure | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index 5b7daac3c6e8..1474dde2c70d 100755
> > --- a/configure
> > +++ b/configure
> > @@ -223,7 +223,7 @@ fi
> >  [ -z "$processor" ] && processor="$arch"
> >  
> >  if [ "$processor" = "arm64" ]; then
> > -    processor="cortex-a57"
> > +    processor="max"
> >  elif [ "$processor" = "arm" ]; then
> >      processor="cortex-a15"
> >  fi
> 
> This looks correct, but the "processor" usage is confusing, as it seems
> to cover two different things:
> 
> - what processor to compile for; this is what configure help claims
>   "processor" is used for, but it only seems to have that effect on
>   32-bit arm
> - which cpu model to use for tcg on 32-bit and 64-bit arm (other archs
>   don't seem to care)
> 
> So, I wonder whether it would be less confusing to drop setting
> "processor" for arm64, and set the cpu models for tcg in arm/run (if
> none have been specified)?
>

Good observation, Conny. So, I should probably leave configure alone,
cortex-a57 is a reasonable processor to compile for, max is based off
that. Then, I can select max in arm/run for both arm and arm64 tests
instead of using processor there.

Thanks,
drew
Cornelia Huck June 3, 2022, 1:38 p.m. UTC | #3
On Fri, Jun 03 2022, Andrew Jones <drjones@redhat.com> wrote:

> On Fri, Jun 03, 2022 at 02:21:10PM +0200, Cornelia Huck wrote:
>> On Fri, Jun 03 2022, Andrew Jones <drjones@redhat.com> wrote:
>> 
>> > The max cpu type is a better default cpu type for running tests
>> > with TCG as it provides the maximum possible feature set. Also,
>> > the max cpu type was introduced in QEMU v2.12, so we should be
>> > safe to switch to it at this point.
>> >
>> > There's also a 32-bit arm max cpu type, but we leave the default
>> > as cortex-a15, because compilation requires we specify for which
>> > processor we want to compile and there's no such thing as a 'max'.
>> >
>> > Signed-off-by: Andrew Jones <drjones@redhat.com>
>> > ---
>> >  configure | 2 +-
>> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >
>> > diff --git a/configure b/configure
>> > index 5b7daac3c6e8..1474dde2c70d 100755
>> > --- a/configure
>> > +++ b/configure
>> > @@ -223,7 +223,7 @@ fi
>> >  [ -z "$processor" ] && processor="$arch"
>> >  
>> >  if [ "$processor" = "arm64" ]; then
>> > -    processor="cortex-a57"
>> > +    processor="max"
>> >  elif [ "$processor" = "arm" ]; then
>> >      processor="cortex-a15"
>> >  fi
>> 
>> This looks correct, but the "processor" usage is confusing, as it seems
>> to cover two different things:
>> 
>> - what processor to compile for; this is what configure help claims
>>   "processor" is used for, but it only seems to have that effect on
>>   32-bit arm
>> - which cpu model to use for tcg on 32-bit and 64-bit arm (other archs
>>   don't seem to care)
>> 
>> So, I wonder whether it would be less confusing to drop setting
>> "processor" for arm64, and set the cpu models for tcg in arm/run (if
>> none have been specified)?
>>
>
> Good observation, Conny. So, I should probably leave configure alone,
> cortex-a57 is a reasonable processor to compile for, max is based off
> that.

Yes, it would be reasonable; however, I only see Makefile.arm put it
into CFLAGS, not Makefile.arm64, unless I'm missing something here. But
it doesn't hurt, either.

> Then, I can select max in arm/run for both arm and arm64 tests
> instead of using processor there.

Unless you want to be able to override this via -processor=
explicitly... although I doubt that this is in common use.
Andrew Jones June 3, 2022, 3:10 p.m. UTC | #4
On Fri, Jun 03, 2022 at 03:38:08PM +0200, Cornelia Huck wrote:
> On Fri, Jun 03 2022, Andrew Jones <drjones@redhat.com> wrote:
> 
> > On Fri, Jun 03, 2022 at 02:21:10PM +0200, Cornelia Huck wrote:
> >> On Fri, Jun 03 2022, Andrew Jones <drjones@redhat.com> wrote:
> >> 
> >> > The max cpu type is a better default cpu type for running tests
> >> > with TCG as it provides the maximum possible feature set. Also,
> >> > the max cpu type was introduced in QEMU v2.12, so we should be
> >> > safe to switch to it at this point.
> >> >
> >> > There's also a 32-bit arm max cpu type, but we leave the default
> >> > as cortex-a15, because compilation requires we specify for which
> >> > processor we want to compile and there's no such thing as a 'max'.
> >> >
> >> > Signed-off-by: Andrew Jones <drjones@redhat.com>
> >> > ---
> >> >  configure | 2 +-
> >> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >> >
> >> > diff --git a/configure b/configure
> >> > index 5b7daac3c6e8..1474dde2c70d 100755
> >> > --- a/configure
> >> > +++ b/configure
> >> > @@ -223,7 +223,7 @@ fi
> >> >  [ -z "$processor" ] && processor="$arch"
> >> >  
> >> >  if [ "$processor" = "arm64" ]; then
> >> > -    processor="cortex-a57"
> >> > +    processor="max"
> >> >  elif [ "$processor" = "arm" ]; then
> >> >      processor="cortex-a15"
> >> >  fi
> >> 
> >> This looks correct, but the "processor" usage is confusing, as it seems
> >> to cover two different things:
> >> 
> >> - what processor to compile for; this is what configure help claims
> >>   "processor" is used for, but it only seems to have that effect on
> >>   32-bit arm
> >> - which cpu model to use for tcg on 32-bit and 64-bit arm (other archs
> >>   don't seem to care)
> >> 
> >> So, I wonder whether it would be less confusing to drop setting
> >> "processor" for arm64, and set the cpu models for tcg in arm/run (if
> >> none have been specified)?
> >>
> >
> > Good observation, Conny. So, I should probably leave configure alone,
> > cortex-a57 is a reasonable processor to compile for, max is based off
> > that.
> 
> Yes, it would be reasonable; however, I only see Makefile.arm put it
> into CFLAGS, not Makefile.arm64, unless I'm missing something here. But
> it doesn't hurt, either.

You're not missing anything, but I'd rather leave it set to something
than nothing.

> 
> > Then, I can select max in arm/run for both arm and arm64 tests
> > instead of using processor there.
> 
> Unless you want to be able to override this via -processor=
> explicitly... although I doubt that this is in common use.
> 

If we want to give users the ability to override the CPU QEMU uses, then
I think I'd rather they do it with an environment variable like they do
the QEMU version and accelerator. While changing to the max cpu in
arm/run I could also start checking a new variable (QEMU_CPU).

Thanks,
drew
diff mbox series

Patch

diff --git a/configure b/configure
index 5b7daac3c6e8..1474dde2c70d 100755
--- a/configure
+++ b/configure
@@ -223,7 +223,7 @@  fi
 [ -z "$processor" ] && processor="$arch"
 
 if [ "$processor" = "arm64" ]; then
-    processor="cortex-a57"
+    processor="max"
 elif [ "$processor" = "arm" ]; then
     processor="cortex-a15"
 fi