On Fri, Feb 22, 2019 at 09:05:16AM +0000, Julien Thierry wrote:
> Hi Dave,
>
> On 18/02/2019 19:52, Dave Martin wrote:
> > Now that all the pieces are in place, this patch offers a new flag
> > KVM_ARM_VCPU_SVE that userspace can pass to KVM_ARM_VCPU_INIT to
> > turn on SVE for the guest, on a per-vcpu basis.
> >
> > As part of this, support for initialisation and reset of the SVE
> > vector length set and registers is added in the appropriate places.
> > Allocation SVE registers is deferred until kvm_arm_vcpu_finalize(),
> > by which time the size of the registers is known.
> >
> > Setting the vector lengths supported by the vcpu is considered
> > configuration of the emulated hardware rather than runtime
> > configuration, so no support is offered for changing the vector
> > lengths of an existing vcpu across reset.
> >
> > Signed-off-by: Dave Martin <[email protected]>
> >
> > ---
> >
> > Changes since v4:
> >
> > * Pull out vcpu_sve_state_size(), for use earlier in the series.
> >
> > * Remove unnecessary vcpu->arch.sve_vqs[], and clamp maximum guest
> > vector length to 256 bytes for forwards compatibility.
> >
> > (See "KVM: arm64/sve: Add pseudo-register for the guest's vector
> > lengths".)
> >
> > * Minor tidyups to make some checks less verbose.
> > ---
> > arch/arm64/include/asm/kvm_host.h | 2 +-
> > arch/arm64/include/uapi/asm/kvm.h | 1 +
> > arch/arm64/kvm/reset.c | 70
> > ++++++++++++++++++++++++++++++++++++++-
> > 3 files changed, 71 insertions(+), 2 deletions(-)
[...]
> > diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c
[...]
> > int kvm_arm_vcpu_finalize(struct kvm_vcpu *vcpu)
> > {
> > if (likely(kvm_arm_vcpu_finalized(vcpu)))
> > return 0;
> >
> > + if (vcpu_has_sve(vcpu)) {
> > + size_t size = vcpu_sve_state_size(vcpu);
> > +
> > + if (!size)
> > + return -EINVAL;
> > +
> > + vcpu->arch.sve_state = kzalloc(size, GFP_KERNEL);
>
> We should probably free this in kvm_arch_vcpu_free().
Hmmm, good spot!
Looks like I lost that during a previous rebase.
Cheers
---Dave
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm