> From: Qemu-arm [mailto:qemu-arm-bounces+salil.mehta=huawei....@nongnu.org] > On Behalf Of Andrew Jones > Sent: Thursday, September 17, 2020 9:13 AM > To: fangying <fangyi...@huawei.com> > Cc: peter.mayd...@linaro.org; Zhanghailiang <zhang.zhanghaili...@huawei.com>; > Alexander Graf <ag...@suse.de>; qemu-devel@nongnu.org; Chenzhendong (alex) > <alex.c...@huawei.com>; shannon.zha...@gmail.com; qemu-...@nongnu.org; > alistair.fran...@wdc.com; imamm...@redhat.com > Subject: Re: [RFC PATCH 04/12] device_tree: add qemu_fdt_add_path > > On Thu, Sep 17, 2020 at 11:20:25AM +0800, Ying Fang wrote: > > From: Andrew Jones <drjo...@redhat.com> > > > > qemu_fdt_add_path works like qemu_fdt_add_subnode, except it > > also recursively adds any missing parent nodes. > > > > Cc: Peter Crosthwaite <crosthwaite.pe...@gmail.com> > > Cc: Alexander Graf <ag...@suse.de> > > Signed-off-by: Andrew Jones <drjo...@redhat.com> > > --- > > device_tree.c | 24 ++++++++++++++++++++++++ > > include/sysemu/device_tree.h | 1 + > > 2 files changed, 25 insertions(+) > > > > diff --git a/device_tree.c b/device_tree.c > > index b335dae707..1854be3a02 100644 > > --- a/device_tree.c > > +++ b/device_tree.c > > @@ -524,6 +524,30 @@ int qemu_fdt_add_subnode(void *fdt, const char *name) > > return retval; > > } > > > > +int qemu_fdt_add_path(void *fdt, const char *path) > > +{ > > + char *parent; > > + int offset; > > + > > + offset = fdt_path_offset(fdt, path); > > + if (offset < 0 && offset != -FDT_ERR_NOTFOUND) { > > + error_report("%s Couldn't find node %s: %s", __func__, path, > > + fdt_strerror(offset)); > > + exit(1); > > + } > > + > > + if (offset != -FDT_ERR_NOTFOUND) { > > + return offset; > > + } > > + > > + parent = g_strdup(path); > > + strrchr(parent, '/')[0] = '\0'; > > + qemu_fdt_add_path(fdt, parent); > > + g_free(parent); > > + > > + return qemu_fdt_add_subnode(fdt, path); > > +} > > Igor didn't like the recursion when I posted this before so I changed > it when doing the refresh[*] that I gave to Salil Mehta. Salil also > works for Huawei, are you guys not working together? > > [*] https://github.com/rhdrjones/qemu/commits/virt-cpu-topology-refresh >
I was not aware of this work going on. I am based at Cambridge and Fangying in Hangzhou and work for different teams. Yes, I have it and have integrated it with the Virtual CPU hotplug branch and I am testing them. I have also rebased virtual cpu hotplug patches and integrated the PMU related changes recently been discussed in other mail-chain. Plus, I am also dealing with the MPIDR/affinity part from the Kernel which has been discussed earlier with the Marc Zyngier. It looks some of the changes are common here like ability to set MPIDR of the vcpus at the time of their creation inside KVM. And the PPTT table changes which were present in your refresh branch as well. Changes related to the possible and present vcpus might need a sync as well. @Andrew, should I take out the part which is common and affects the virtual cpu hotplug and push them separately. This way I can have part of the changes related to the vcpu hotplug done which will also cover this patch-set requirements as well? @Fangying, will this work for you? Salil.