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. ?