All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache topology support
@ 2020-09-17  3:20 Ying Fang
  2020-09-17  3:20 ` [RFC PATCH 01/12] linux headers: Update linux header with KVM_ARM_SET_MP_AFFINITY Ying Fang
                   ` (12 more replies)
  0 siblings, 13 replies; 41+ messages in thread
From: Ying Fang @ 2020-09-17  3:20 UTC (permalink / raw)
  To: qemu-devel
  Cc: peter.maydell, drjones, zhang.zhanghailiang, alex.chen,
	shannon.zhaosl, qemu-arm, alistair.francis, Ying Fang, imammedo

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



^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2020-10-20  8:23 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-17  3:20 [RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache topology support Ying Fang
2020-09-17  3:20 ` [RFC PATCH 01/12] linux headers: Update linux header with KVM_ARM_SET_MP_AFFINITY Ying Fang
2020-09-17  3:20 ` [RFC PATCH 02/12] target/arm/kvm64: make MPIDR consistent with CPU Topology Ying Fang
2020-09-17  7:53   ` Andrew Jones
2020-09-17 10:59     ` Andrew Jones
2020-09-17 13:19       ` Ying Fang
2020-09-17 14:05         ` Andrew Jones
2020-09-17 12:17     ` Ying Fang
2020-09-17  3:20 ` [RFC PATCH 03/12] target/arm/kvm32: " Ying Fang
2020-09-17  8:07   ` Andrew Jones
2020-09-17 13:26     ` Ying Fang
2020-09-17  3:20 ` [RFC PATCH 04/12] device_tree: add qemu_fdt_add_path Ying Fang
2020-09-17  8:12   ` Andrew Jones
2020-09-17 13:55     ` Ying Fang
2020-09-18  0:25     ` Salil Mehta
2020-09-18  6:06       ` Andrew Jones
2020-09-18 16:58         ` Salil Mehta
2020-09-17  3:20 ` [RFC PATCH 05/12] hw/arm/virt: DT: add cpu-map Ying Fang
2020-09-17  8:14   ` Andrew Jones
2020-09-17  3:20 ` [RFC PATCH 06/12] hw/arm/virt-acpi-build: distinguish possible and present cpus Ying Fang
2020-09-17  8:20   ` Andrew Jones
2020-09-17 13:58     ` Ying Fang
2020-09-17  3:20 ` [RFC PATCH 07/12] hw/acpi/aml-build: add processor hierarchy node structure Ying Fang
2020-09-17  8:27   ` Andrew Jones
2020-09-17 14:03     ` Ying Fang
2020-09-17  3:20 ` [RFC PATCH 08/12] hw/arm/virt-acpi-build: add PPTT table Ying Fang
2020-09-17  8:28   ` Andrew Jones
2020-09-17  3:20 ` [RFC PATCH 09/12] target/arm/cpu: Add CPU cache description for arm Ying Fang
2020-09-17  8:39   ` Andrew Jones
2020-09-17 14:11     ` Ying Fang
2020-09-17  3:20 ` [RFC PATCH 10/12] hw/arm/virt: add fdt cache information Ying Fang
2020-09-17  3:20 ` [RFC PATCH 11/12] hw/acpi/aml-build: build ACPI CPU cache topology information Ying Fang
2020-09-17  3:20 ` [RFC PATCH 12/12] hw/arm/virt-acpi-build: Enable CPU cache topology Ying Fang
2020-10-13 12:11 ` [RFC PATCH 00/12] hw/arm/virt: Introduce cpu and cache topology support Zengtao (B)
2020-10-13 18:08   ` Andrew Jones
2020-10-15  2:07     ` Ying Fang
2020-10-15  7:59       ` Andrew Jones
2020-10-16  9:40         ` Ying Fang
2020-10-16 10:07           ` Andrew Jones
2020-10-20  2:52             ` Ying Fang
2020-10-20  8:20               ` Andrew Jones

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.