On 4/8/21 10:40 PM, Daniel Henrique Barboza wrote: > Certain SMP topologies stress, e.g. 1 thread/core, 2048 cores and > 1 socket, stress the current maximum size of the pSeries FDT: > > Calling ibm,client-architecture-support...qemu-system-ppc64: error > creating device tree: (fdt_setprop(fdt, offset, > "ibm,processor-segment-sizes", segs, sizeof(segs))): FDT_ERR_NOSPACE > > 2048 is the default NR_CPUS value for the pSeries kernel. It's expected > that users will want QEMU to be able to handle this kind of > configuration. > > Bumping FDT_MAX_SIZE to 2MB is enough for these setups to be created. > > Signed-off-by: Daniel Henrique Barboza <danielhb...@gmail.com> > --- > include/hw/ppc/spapr.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h > index bf7cab7a2c..3deb382678 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -95,7 +95,7 @@ typedef enum { > #define SPAPR_CAP_FIXED_CCD 0x03 > #define SPAPR_CAP_FIXED_NA 0x10 /* Lets leave a bit of a gap... > */ > > -#define FDT_MAX_SIZE 0x100000 > +#define FDT_MAX_SIZE 0x200000 > > /* > * NUMA related macros. MAX_DISTANCE_REF_POINTS was taken >
FYI, On a very large system, I also had to bump the FDT_MAX_SIZE value in softmmu/device-tree.c because QEMU is parsing the host DT. Thanks, C.