On Mon, Oct 14, 2019 at 06:58:49PM +0200, Vitaly Kuznetsov wrote: > Xiaoyao Li <xiaoyao.li@xxxxxxxxx> writes: > > > They are duplicated codes to create vcpu.arch.{user,guest}_fpu in VMX > > and SVM. Make them common functions. > > > > No functional change intended. > > Would it rather make sense to move this code to > kvm_arch_vcpu_create()/kvm_arch_vcpu_destroy() instead? Does it make sense? Yes. Would it actually work? No. Well, not without other shenanigans. FPU allocation can't be placed after the call to .create_vcpu() becuase it's consumed in kvm_arch_vcpu_init(). FPU allocation can't come before .create_vcpu() because the vCPU struct itself hasn't been allocated. The latter could be solved by passed the FPU pointer into .create_vcpu(), but that's a bit ugly and is not a precedent we want to set. At a glance, FPU allocation can be moved to kvm_arch_vcpu_init(), maybe right before the call to fx_init().