Re: [PATCH v19 024/130] KVM: TDX: Add placeholders for TDX VM/vcpu structure

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

 



On Fri, 2024-03-22 at 15:45 -0700, Isaku Yamahata wrote:
> Hmm, now I noticed the vm_size can be moved here.  We have
> 
>  	vcpu_size = sizeof(struct vcpu_vmx);
>  	vcpu_align = __alignof__(struct vcpu_vmx);
> 	if (enable_tdx) {
> 		vcpu_size = max_t(unsigned int, vcpu_size,
> 				  sizeof(struct vcpu_tdx));
> 		vcpu_align = max_t(unsigned int, vcpu_align,
> 				   __alignof__(struct vcpu_tdx));
>                 vt_x86_ops.vm_size = max_t(unsigned int, vt_x86_ops.vm_size,
>                                           sizeof(struct kvm_tdx));
> 	}

Hmm.. After reading again, I don't think we can?

In your comments that was replied to Binbin:

/*
 * vt_hardware_setup() updates vt_x86_ops.  Because kvm_ops_update()
 * copies vt_x86_ops to kvm_x86_op, vt_x86_ops must be updated before
 * kvm_ops_update() called by kvm_x86_vendor_init().
 */

You said update to vt_x86_ops.vm_size must be done in vt_hardware_setup().

But I think we should move the above comment to the vt_hardware_setup()
where vm_size is truly updated.

	/*
	 * TDX and VMX have different VM structure.  If TDX is enabled,
	 * update vt_x86_ops.vm_size to the maximum value of the two
	 * before it is copied to kvm_x86_ops in kvm_update_ops() to make
	 * sure KVM always allocates enough memory for the VM structure.
	 */

Here the purpose to calculate vcpu_size/vcpu_align is just to pass them to
kvm_init().  If needed, we can add a comment to describe "what this code
does":

	/*
	 * TDX and VMX have different vCPU structure.  Calculate the 
	 * maximum size/align so that kvm_init() can use the larger 
	 * values to create the vCPU kmem_cache.
	 */




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux