On Tue, 21 Nov 2023 22:10:28 +0000
Volodymyr Babchuk <Volodymyr_Babchuk@epam.com> wrote:
Probably typo in 'subj'
mc->max_cpus
is limit on maximum supported vCPUs and it shouldn't be set
by xen_arm_init()
patch itself though does the right thing by setting it
in xen_arm_machine_class_init()
Also below explanation, while valid is not the reason for
increasing mc->max_cpus.
Reason could be as simple as
'increase max vCPU limit for FOO machine to XXX'
otherwise machine creation would be aborted early by generic code
with error '...'
see machine_parse_smp_config()
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>
> The number of vCPUs used for the IOREQ configuration (machine->smp.cpus)
> should really match the system value as for each vCPU we setup a dedicated
> evtchn for the communication with Xen at the runtime. This is needed
> for the IOREQ to be properly configured and work if the involved domain
> has more than one vCPU assigned.
>
> Set the number of current supported guest vCPUs here (128) which is
> defined in public header arch-arm.h. And the toolstack should then
> pass max_vcpus using "-smp" arg.
>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> ---
> hw/arm/xen_arm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/arm/xen_arm.c b/hw/arm/xen_arm.c
> index a5631529d0..b9c3ae14b6 100644
> --- a/hw/arm/xen_arm.c
> +++ b/hw/arm/xen_arm.c
> @@ -231,7 +231,7 @@ static void xen_arm_machine_class_init(ObjectClass *oc, void *data)
> MachineClass *mc = MACHINE_CLASS(oc);
> mc->desc = "Xen Para-virtualized PC";
> mc->init = xen_arm_init;
> - mc->max_cpus = 1;
> + mc->max_cpus = GUEST_MAX_VCPUS;
> mc->default_machine_opts = "accel=xen";
> /* Set explicitly here to make sure that real ram_size is passed */
> mc->default_ram_size = 0;