Cc valentin > -----Original Message----- > From: Qemu-devel > [mailto:[email protected]] > On Behalf Of Ying Fang > Sent: Thursday, September 17, 2020 11:20 AM > To: [email protected] > Cc: [email protected]; [email protected]; Zhanghailiang; > Chenzhendong (alex); [email protected]; > [email protected]; [email protected]; fangying; > [email protected] > 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 > [email protected] > > 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 >
