Hi Daniel, > On 31 May 2022, at 11:45, Daniel P. Smith <[email protected]> > wrote: > > On 5/31/22 05:07, Bertrand Marquis wrote: >> Hi Daniel, > > Greetings Bertrand. > >>> On 31 May 2022, at 03:41, Daniel P. Smith <[email protected]> >>> wrote: >>> >>> For x86 the number of allowable multiboot modules varies between the >>> different >>> entry points, non-efi boot, pvh boot, and efi boot. In the case of both Arm >>> and >>> x86 this value is fixed to values based on generalized assumptions. With >>> hyperlaunch for x86 and dom0less on Arm, use of static sizes results in >>> large >>> allocations compiled into the hypervisor that will go unused by many use >>> cases. >>> >>> This commit introduces a Kconfig variable that is set with sane defaults >>> based >>> on configuration selection. This variable is in turned used as the array >>> size >>> for the cases where a static allocated array of boot modules is declared. >>> >>> Signed-off-by: Daniel P. Smith <[email protected]> >>> --- >>> xen/arch/Kconfig | 12 ++++++++++++ >>> xen/arch/arm/include/asm/setup.h | 5 +++-- >>> xen/arch/x86/efi/efi-boot.h | 2 +- >>> xen/arch/x86/guest/xen/pvh-boot.c | 2 +- >>> xen/arch/x86/setup.c | 4 ++-- >>> 5 files changed, 19 insertions(+), 6 deletions(-) >>> >>> diff --git a/xen/arch/Kconfig b/xen/arch/Kconfig >>> index f16eb0df43..57b14e22c9 100644 >>> --- a/xen/arch/Kconfig >>> +++ b/xen/arch/Kconfig >>> @@ -17,3 +17,15 @@ config NR_CPUS >>> For CPU cores which support Simultaneous Multi-Threading or similar >>> technologies, this the number of logical threads which Xen will >>> support. >>> + >>> +config NR_BOOTMODS >>> + int "Maximum number of boot modules that a loader can pass" >>> + range 1 64 >>> + default "8" if X86 >>> + default "32" if ARM >>> + help >>> + Controls the build-time size of various arrays allocated for >>> + parsing the boot modules passed by a loader when starting Xen. >>> + >>> + This is of particular interest when using Xen's hypervisor domain >>> + capabilities such as dom0less. >>> diff --git a/xen/arch/arm/include/asm/setup.h >>> b/xen/arch/arm/include/asm/setup.h >>> index 2bb01ecfa8..312a3e4209 100644 >>> --- a/xen/arch/arm/include/asm/setup.h >>> +++ b/xen/arch/arm/include/asm/setup.h >>> @@ -10,7 +10,8 @@ >>> >>> #define NR_MEM_BANKS 256 >>> >>> -#define MAX_MODULES 32 /* Current maximum useful modules */ >>> +/* Current maximum useful modules */ >>> +#define MAX_MODULES CONFIG_NR_BOOTMODS >>> >>> typedef enum { >>> BOOTMOD_XEN, >>> @@ -38,7 +39,7 @@ struct meminfo { >>> * The domU flag is set for kernels and ramdisks of "xen,domain" nodes. >>> * The purpose of the domU flag is to avoid getting confused in >>> * kernel_probe, where we try to guess which is the dom0 kernel and >>> - * initrd to be compatible with all versions of the multiboot spec. >>> + * initrd to be compatible with all versions of the multiboot spec. >> >> This seems to be a spurious change. > > I have been trying to clean up trailing white space when I see it > nearby. I can drop this one if that is desired.
If this is wanted this is ok, just mention it in the commit message so that we know it was on purpose. > >> With that fixed, for the arm part: >> Reviewed-by: Bertrand Marquis <[email protected]> > > Thank you, will add it in when I respin it for submission. Cheers Bertrand > > v/r, > dps
