On Tue, Aug 24, 2021 at 08:28:55AM +0200, Andrew Jones wrote: > On Mon, Aug 23, 2021 at 10:53:48AM -0700, Richard Henderson wrote: > > On 8/23/21 9:06 AM, Andrew Jones wrote: > > > Now that we have an ARMCPU member sve_vq_supported we no longer > > > need the local kvm_supported bitmap for KVM's supported vector > > > lengths. > > > > > > Signed-off-by: Andrew Jones <drjo...@redhat.com> > > > Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > > > --- > > > target/arm/cpu64.c | 19 +++++++++++-------- > > > 1 file changed, 11 insertions(+), 8 deletions(-) > > > > > > diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c > > > index eb9318c83b74..557fd4757740 100644 > > > --- a/target/arm/cpu64.c > > > +++ b/target/arm/cpu64.c > > > @@ -265,14 +265,17 @@ void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) > > > * any of the above. Finally, if SVE is not disabled, then at > > > least one > > > * vector length must be enabled. > > > */ > > > - DECLARE_BITMAP(kvm_supported, ARM_MAX_VQ); > > > DECLARE_BITMAP(tmp, ARM_MAX_VQ); > > > uint32_t vq, max_vq = 0; > > > - /* Collect the set of vector lengths supported by KVM. */ > > > - bitmap_zero(kvm_supported, ARM_MAX_VQ); > > > + /* > > > + * CPU models specify a set of supported vector lengths which are > > > + * enabled by default. Attempting to enable any vector length not > > > set > > > + * in the supported bitmap results in an error. When KVM is enabled > > > we > > > + * fetch the supported bitmap from the host. > > > + */ > > > if (kvm_enabled() && kvm_arm_sve_supported()) { > > > - kvm_arm_sve_get_vls(CPU(cpu), kvm_supported); > > > + kvm_arm_sve_get_vls(CPU(cpu), cpu->sve_vq_supported); > > > } else if (kvm_enabled()) { > > > assert(!cpu_isar_feature(aa64_sve, cpu)); > > > } > > > > I think this whole stanza should now be moved into > > kvm_arm_get_host_cpu_features, where we detect sve and fetch > > ID_AA64ZFR0_EL1. > > > > As a separate patch, since this one is simply the variable rename. > > Good idea. I'll do that for v3.
Actually, I'll post an independent series for this idea rather than a v3 with another patch. With enough changes we can avoid several scratch vcpus, but that's getting too far outside the scope of this series. Thanks, drew