[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v2 0/6] hw/arm/virt: Introduce cpu topology support
From: |
Yanan Wang |
Subject: |
[RFC PATCH v2 0/6] hw/arm/virt: Introduce cpu topology support |
Date: |
Tue, 13 Apr 2021 16:07:39 +0800 |
Hi,
This series is a new version of [0] recently posted by Ying Fang
to introduce cpu topology support for ARM platform. I have taken
over his work about this now, thanks for his contribution.
Description:
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. Dario Faggioli's talk
in [1] also shows the virtual topology could have impact on scheduling
performace. Thus this patch series introduces cpu topology support for
ARM platform.
This series originally comes from Andrew Jones's patches [2], but with
some re-arrangement. Thanks for Andrew's contribution. In this series,
both fdt and ACPI PPTT table are introduced to present cpu topology to
the guest. And a new function virt_smp_parse() not like the default
smp_parse() is introduced, which prefers cores over sockets.
[0]
https://patchwork.kernel.org/project/qemu-devel/cover/20210225085627.2263-1-fangying1@huawei.com/
[1]
https://kvmforum2020.sched.com/event/eE1y/virtual-topology-for-virtual-machines-friend-or-foe-dario-faggioli-suse
[2]
https://github.com/rhdrjones/qemu/commit/ecfc1565f22187d2c715a99bbcd35cf3a7e428fa
Test results:
After applying this patch series, launch a guest with virt-6.0 and cpu
topology configured with: -smp 96,sockets=2,clusters=6,cores=4,threads=2,
VM's cpu topology description shows as below.
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 96
On-line CPU(s) list: 0-95
Thread(s) per core: 2
Core(s) per socket: 24
Socket(s): 2
NUMA node(s): 1
Vendor ID: 0x48
Model: 0
Stepping: 0x1
BogoMIPS: 200.00
NUMA node0 CPU(s): 0-95
---
Changelogs:
v1->v2:
- Address Andrew Jones's comments
- Address Michael S. Tsirkin's comments
- Pick up one more patch(patch#6) of Andrew Jones
- Rebased on v6.0.0-rc2 release
---
Andrew Jones (3):
device_tree: Add qemu_fdt_add_path
hw/arm/virt: DT: Add cpu-map
hw/arm/virt: Replace smp_parse with one that prefers cores
Yanan Wang (2):
hw/acpi/aml-build: Add processor hierarchy node structure
hw/arm/virt-acpi-build: Add PPTT table
Ying Fang (1):
hw/arm/virt-acpi-build: Distinguish possible and present cpus
hw/acpi/aml-build.c | 27 ++++++++
hw/arm/virt-acpi-build.c | 77 ++++++++++++++++++++--
hw/arm/virt.c | 120 ++++++++++++++++++++++++++++++++++-
include/hw/acpi/aml-build.h | 4 ++
include/hw/arm/virt.h | 1 +
include/sysemu/device_tree.h | 1 +
softmmu/device_tree.c | 45 ++++++++++++-
7 files changed, 268 insertions(+), 7 deletions(-)
--
2.19.1
- [RFC PATCH v2 0/6] hw/arm/virt: Introduce cpu topology support,
Yanan Wang <=