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

From: Huang, Kai
Date: Wed Jun 07 2023 - 22:40:36 EST


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. 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. Dave is fine with static too, but prefers to putting them inside
the function:

https://lore.kernel.org/lkml/cover.1670566861.git.kai.huang@xxxxxxxxx/T/#mbfdaa353278588da09e43f3ce37b7bf8ddedc1b2

I can update the changelog to reflect above:

For now both 'tdsysinfo_struct' and CMRs are only used during the 
module initialization. KVM will need to at least use
'tdsysinfo_struct'
when supporting TDX guests. For now just declare them inside the
module
initialization function but as static variables.

?