[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 3/4] target/arm/cpu64: Replace kvm_supported with sve_vq_s
From: |
Andrew Jones |
Subject: |
Re: [PATCH v2 3/4] target/arm/cpu64: Replace kvm_supported with sve_vq_supported |
Date: |
Tue, 24 Aug 2021 08:47:39 +0200 |
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 <drjones@redhat.com>
> > > Reviewed-by: Philippe Mathieu-Daudé <philmd@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