Cc valentin > -----Original Message----- > From: Qemu-devel > [mailto:qemu-devel-bounces+prime.zeng=hisilicon....@nongnu.org] > On Behalf Of Ying Fang > Sent: Thursday, September 17, 2020 11:20 AM > To: qemu-devel@nongnu.org > Cc: peter.mayd...@linaro.org; drjo...@redhat.com; Zhanghailiang; > Chenzhendong (alex); shannon.zha...@gmail.com; > qemu-...@nongnu.org; alistair.fran...@wdc.com; fangying; > imamm...@redhat.com > Subject: [RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache > topology support > > An accurate cpu topology may help improve the cpu scheduler's > decision > making when dealing with multi-core system. So cpu topology > description > is helpful to provide guest with the right view. Cpu cache information > may > also have slight impact on the sched domain, and even userspace > software > may check the cpu cache information to do some optimizations. Thus > this patch > series is posted to provide cpu and cache topology support for arm. > > To make the cpu topology consistent with MPIDR, an vcpu ioctl
For aarch64, the cpu topology don't depends on the MPDIR. See https://patchwork.kernel.org/patch/11744387/ > KVM_ARM_SET_MP_AFFINITY is introduced so that userspace can set > MPIDR > according to the topology specified [1]. To describe the cpu topology > both fdt and ACPI are supported. To describe the cpu cache > information, > a default cache hierarchy is given and can be made configurable later. > The cpu topology is built according to processor hierarchy node > structure. > The cpu cache information is built according to cache type structure. > > This patch series is partially based on the patches posted by Andrew > Jone > years ago [2], I jumped in on it since some OS vendor cooperative > partners > are eager for it. Thanks for Andrew's contribution. Please feel free to > reply > to me if there is anything improper. > > [1] https://patchwork.kernel.org/cover/11781317 > [2] > https://patchwork.ozlabs.org/project/qemu-devel/cover/2018070412 > 4923.32483-1-drjo...@redhat.com > > Andrew Jones (2): > device_tree: add qemu_fdt_add_path > hw/arm/virt: DT: add cpu-map > > Ying Fang (10): > linux headers: Update linux header with > KVM_ARM_SET_MP_AFFINITY > target/arm/kvm64: make MPIDR consistent with CPU Topology > target/arm/kvm32: make MPIDR consistent with CPU Topology > hw/arm/virt-acpi-build: distinguish possible and present cpus > hw/acpi/aml-build: add processor hierarchy node structure > hw/arm/virt-acpi-build: add PPTT table > target/arm/cpu: Add CPU cache description for arm > hw/arm/virt: add fdt cache information > hw/acpi/aml-build: build ACPI CPU cache topology information > hw/arm/virt-acpi-build: Enable CPU cache topology > > device_tree.c | 24 +++++++ > hw/acpi/aml-build.c | 68 +++++++++++++++++++ > hw/arm/virt-acpi-build.c | 99 > +++++++++++++++++++++++++-- > hw/arm/virt.c | 128 > ++++++++++++++++++++++++++++++++++- > include/hw/acpi/acpi-defs.h | 14 ++++ > include/hw/acpi/aml-build.h | 11 +++ > include/hw/arm/virt.h | 1 + > include/sysemu/device_tree.h | 1 + > linux-headers/linux/kvm.h | 3 + > target/arm/cpu.c | 42 ++++++++++++ > target/arm/cpu.h | 27 ++++++++ > target/arm/kvm32.c | 46 ++++++++++--- > target/arm/kvm64.c | 46 ++++++++++--- > 13 files changed, 488 insertions(+), 22 deletions(-) > > -- > 2.23.0 >