[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache topology support
From: |
Ying Fang |
Subject: |
[RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache topology support |
Date: |
Thu, 17 Sep 2020 11:20:21 +0800 |
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
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/20180704124923.32483-1-drjones@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
- [RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache topology support,
Ying Fang <=
[RFC PATCH 09/12] target/arm/cpu: Add CPU cache description for arm, Ying Fang, 2020/09/16