On Tue, May 18, 2021 at 07:04:51AM +0000, Salil Mehta wrote: > > From: wangyanan (Y) > > Sent: Tuesday, May 18, 2021 5:43 AM > > > > Hi Salil, > > > > On 2021/5/18 4:48, Salil Mehta wrote: > > >> From: Qemu-arm > > [mailto:qemu-arm-bounces+salil.mehta=huawei....@nongnu.org] > > >> On Behalf Of Yanan Wang > > >> Sent: Sunday, May 16, 2021 11:29 AM > > >> To: Peter Maydell <peter.mayd...@linaro.org>; Andrew Jones > > >> <drjo...@redhat.com>; Michael S . Tsirkin <m...@redhat.com>; Igor > > >> Mammedov > > >> <imamm...@redhat.com>; Shannon Zhao <shannon.zha...@gmail.com>; Alistair > > >> Francis <alistair.fran...@wdc.com>; David Gibson > > >> <da...@gibson.dropbear.id.au>; qemu-devel@nongnu.org; qemu-...@nongnu.org > > >> Cc: Song Bao Hua (Barry Song) <song.bao....@hisilicon.com>; zhukeqian > > >> <zhukeqi...@huawei.com>; yangyicong <yangyic...@huawei.com>; Zengtao (B) > > >> <prime.z...@hisilicon.com>; Wanghaibin (D) <wanghaibin.w...@huawei.com>; > > >> yuzenghui <yuzeng...@huawei.com>; Paolo Bonzini <pbonz...@redhat.com>; > > >> Philippe Mathieu-Daudé <phi...@redhat.com> > > >> Subject: [RFC PATCH v3 4/9] hw/arm/virt: Initialize the present cpu > > >> members > > >> > > >> We create and initialize a cpuobj for each present cpu in > > >> machvirt_init(). Now we also initialize the cpu member of > > >> structure CPUArchId for each present cpu in the function. > > > [...] > > > > > >> qdev_realize(DEVICE(cpuobj), NULL, &error_fatal); > > >> + > > >> + /* > > >> + * As ARM cpu hotplug is not supported yet, we initialize > > >> + * the present cpu members here. > > >> + */ > > >> + machine->possible_cpus->cpus[n].cpu = cpuobj; > > > > > > when vcpu Hotplug is not supported yet, what necessitates this change now? > > > > > The initialization will gives a way to determine whether a CPU is > > present or not. > > At least, for now it will be used when generating ACPI tables, e.g. > > DSDT, MADT. > > See patch 5 and 6. > > yes, but why do you require it now as part of the vcpu topology change? > > As-far-as-i-can-see, PPTT table changes(part of patch 5/9) do not require > this change. Change in Patch 5/9 has also been done in anticipation of > some future requirement(vcpu Hotplug?). > > Please correct me here if I am wrong? >
Hi Salil, The problem is that we've never required smp.cpus == smp.maxcpus, so a user could have smp.cpus < smp.maxcpus. We want the topology to match maxcpus, but only enable cpus. However, if you think we should just not allow cpus < maxcpus until hot plug is sorted out, then we could discuss a way of trying to enforce cpus == maxcpus, but I'm not sure how we can without breaking existing command lines. Thanks, drew