Re: [PATCH v11 08/20] x86/virt/tdx: Get information about TDX module and TDX-capable memory

From: kirill.shutemov@xxxxxxxxxxxxxxx
Date: Thu Jun 08 2023 - 07:42:02 EST


On Thu, Jun 08, 2023 at 02:40:27AM +0000, Huang, Kai wrote:
> On Thu, 2023-06-08 at 03:27 +0300, kirill.shutemov@xxxxxxxxxxxxxxx wrote:
> > On Mon, Jun 05, 2023 at 02:27:21AM +1200, Kai Huang wrote:
> > > For now both 'tdsysinfo_struct' and CMRs are only used during the module
> > > initialization. But because they are both relatively big, declare them
> > > inside the module initialization function but as static variables.
> >
> > This justification does not make sense to me. static variables will not be
> > freed after function returned. They will still consume memory.
> >
> > I think you need to allocate/free memory dynamically, if they are too big
> > for stack.
>
>
> I do need to keep tdsysinfo_struct as it will be used by KVM too.

Will you pass it down to KVM from this function? Will KVM use the struct
after the function returns?

> CMRs are not
> used by KVM now but they might get used in the future, e.g., we may want to
> expose them to /sys in the future.
>
> Also it takes more lines of code to do dynamic allocation. I'd prefer the code
> simplicity.

These structures take 1.5K of memory and the memory will be allocated for
all machines that boots the kernel with TDX enabled, regardless if the
machine has TDX or not. It seems very wasteful to me.


--
Kiryl Shutsemau / Kirill A. Shutemov