Re: [PATCH v5 23/26] KVM: arm64/sve: Allow userspace to enable SVE for vcpus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <Dave.Martin@xxxxxxx>
> > 
> > ---
> > 
> > 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
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm



[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux