> From: Andrew Jones [mailto:drjo...@redhat.com] > Sent: Tuesday, May 18, 2021 8:50 AM > > 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.
Hi Andrew, Ideally, if the vcpu Hotplug is not supported the check in the smp_parse() should impose (cpus == maxcpus). This as of now is just a warning of invalid configuration I think. Beside this does not breaks any prior usages which you suggested might happen? Again, this is not a blocking issue from my side but just a humble suggestion. You might want to take a call on this :) Thanks Salil.