On Fri, Nov 02, 2018 at 09:05:36AM +0100, Christoffer Dall wrote: > On Fri, Sep 28, 2018 at 02:39:09PM +0100, Dave Martin wrote: > > In preparation for adding support for SVE in guests on arm64, a > > hook is needed for freeing additional per-vcpu memory when a vcpu > > is freed. > > Can this commit motivate why we can't do the work in kvm_arch_vcpu_free, > which we use for freeing other data structures? > > (Presumably, uninit is needed when you need to do something at the very > last step after releasing the struct pid. It wasn't to do with that. Rather, the division of responsibility between the vcpu_uninit and vcpu_free paths is not very clear. In the earlier version of the series, I think SVE state may have been allocated rather early and we may have needed to free it in the failure path of kvm_arch_vcpu_create() (which just calls kvm_vcpu_uninit()). (Alternatively, I may just have been wrong.) Now, the vcpu must be fully created before the KVM_ARM_SVE_CONFIG ioctl on it (which is what allocates sve_state) can succeed anyway. So the distinction between these two teardown phases is probably no longer important. I'll see whether I can get rid of this hook and free the SVE state in kvm_arch_vcpu_free() instead. Does that make sense? Cheers ---Dave _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm