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 |
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)?
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
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.
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 --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
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(-)