qemu-e2k/hw/arm
Yanan Wang d55c316f91 hw/arm/virt: Support CPU cluster on ARM virt machine
ARM64 machines like Kunpeng Family Server Chips have a level
of hardware topology in which a group of CPU cores share L3
cache tag or L2 cache. For example, Kunpeng 920 typically
has 6 or 8 clusters in each NUMA node (also represent range
of CPU die), and each cluster has 4 CPU cores. All clusters
share L3 cache data, but CPU cores in each cluster share a
local L3 tag.

Running a guest kernel with Cluster-Aware Scheduling on the
Hosts which have physical clusters, if we can design a vCPU
topology with cluster level for guest kernel and then have
a dedicated vCPU pinning, the guest will gain scheduling
performance improvement from cache affinity of CPU cluster.

So let's enable the support for this new parameter on ARM
virt machines. After this patch, we can define a 4-level
CPU hierarchy like: cpus=*,maxcpus=*,sockets=*,clusters=*,
cores=*,threads=*.

Signed-off-by: Yanan Wang <wangyanan55@huawei.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Message-id: 20220107083232.16256-2-wangyanan55@huawei.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2022-01-20 11:47:52 +00:00
..
Kconfig hw: Move MARVELL_88W8618 Kconfig from audio/ to arm/ 2022-01-20 11:47:52 +00:00
allwinner-a10.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
allwinner-h3.c allwinner-h3: Switch to SMC as PSCI conduit 2021-09-30 13:42:09 +01:00
armsse.c arm: Remove system_clock_scale global 2021-09-01 11:08:21 +01:00
armv7m.c hw/arm/armv7m: Create input clocks 2021-09-01 11:08:19 +01:00
aspeed.c hw/arm/aspeed: Replace drive_get_next() by drive_get() 2021-12-15 14:56:06 +01:00
aspeed_ast2600.c Add dummy Aspeed AST2600 Display Port MCU (DPMCU) 2022-01-07 17:07:57 +00:00
aspeed_soc.c hw/arm: Integrate ADC model into Aspeed SoC 2021-10-12 08:20:08 +02:00
bcm2835_peripherals.c hw/arm: Add basic power management to raspi. 2021-07-02 11:48:36 +01:00
bcm2836.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
boot.c hw/arm: Don't include qemu-common.h unnecessarily 2021-12-15 10:35:26 +00:00
collie.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cubieboard.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
digic.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
digic_boards.c hw/arm: Don't include qemu-common.h unnecessarily 2021-12-15 10:35:26 +00:00
exynos4_boards.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
exynos4210.c hw/dma/pl330: Add memory region to replace default 2021-08-25 10:48:50 +01:00
fsl-imx6.c Add the ability to change the FEC PHY MDIO device number on i.MX6 processor 2020-07-13 14:36:08 +01:00
fsl-imx6ul.c fsl-imx6ul: Instantiate SAI1/2/3 and ASRC as unimplemented devices 2021-08-25 10:48:50 +01:00
fsl-imx7.c fsl-imx7: Instantiate SAI1/2/3 as unimplemented devices 2021-08-25 10:48:51 +01:00
fsl-imx25.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
fsl-imx31.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
gumstix.c hw/arm/gumstix: Simplify since the machines are little-endian only 2020-03-05 16:09:14 +00:00
highbank.c hw/arm: Don't include qemu-common.h unnecessarily 2021-12-15 10:35:26 +00:00
imx25_pdk.c hw/arm/imx25_pdk: Replace drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
integratorcp.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
kzm.c Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
mainstone.c qtest: delete superfluous inclusions of qtest.h 2021-03-09 06:03:53 +01:00
mcimx6ul-evk.c hw/arm/mcimx6ul-evk: Replace drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
mcimx7d-sabre.c hw/arm/mcimx7d-sabre: Replace drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
meson.build stm32vldiscovery: Add the STM32VLDISCOVERY Machine 2021-07-09 16:09:12 +01:00
microbit.c hw/arm: Display CPU type in machine description 2021-02-03 10:15:51 +00:00
mps2-tz.c hw/arm/mps2-tz.c: Mark internal-only I2C buses as 'full' 2021-09-13 21:01:08 +01:00
mps2.c hw/arm/mps2.c: Mark internal-only I2C buses as 'full' 2021-09-13 21:01:08 +01:00
msf2-soc.c arm: Remove system_clock_scale global 2021-09-01 11:08:21 +01:00
msf2-som.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
musca.c arm: Update infocenter.arm.com URLs 2021-02-11 11:50:14 +00:00
musicpal.c hw/net: Move MV88W8618 network device out of hw/arm/ directory 2022-01-20 11:47:52 +00:00
netduino2.c arm: Remove system_clock_scale global 2021-09-01 11:08:21 +01:00
netduinoplus2.c arm: Remove system_clock_scale global 2021-09-01 11:08:21 +01:00
npcm7xx.c hw/arm: Add Nuvoton SD module to board 2021-11-02 14:14:55 -04:00
npcm7xx_boards.c hw/arm: kudo add lm75s on bus 13 2022-01-07 17:08:01 +00:00
nrf51_soc.c arm: Remove system_clock_scale global 2021-09-01 11:08:21 +01:00
nseries.c hw/arm/nseries: Display hexadecimal value with '0x' prefix 2021-07-27 10:57:40 +01:00
omap1.c Do not include hw/boards.h if it's not really necessary 2021-05-02 17:24:51 +02:00
omap2.c Do not include hw/boards.h if it's not really necessary 2021-05-02 17:24:51 +02:00
omap_sx1.c hw/arm: Use memory_region_init_rom() with read-only regions 2020-03-17 15:18:46 +01:00
orangepi.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
palm.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
pxa2xx.c hw/i2c: Rename i2c_set_slave_address() -> i2c_slave_set_address() 2021-07-08 14:15:01 -05:00
pxa2xx_gpio.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pxa2xx_pic.c hw/arm: Constify VMStateDescription 2021-05-02 17:24:50 +02:00
raspi.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
realview.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
sabrelite.c hw: Replace trivial drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
sbsa-ref.c hw/arm: Don't include qemu-common.h unnecessarily 2021-12-15 10:35:26 +00:00
smmu-common.c dma: Let dma_memory_read/write() take MemTxAttrs argument 2021-12-30 17:16:32 +01:00
smmu-internal.h hw/arm/smmuv3: Fix SMMU_CMD_CFGI_STE_RANGE handling 2021-03-12 12:40:10 +00:00
smmuv3-internal.h hw/arm/smmuv3: Check 31st bit to see if CD is valid 2021-07-27 10:57:39 +01:00
smmuv3.c dma: Let dma_memory_read/write() take MemTxAttrs argument 2021-12-30 17:16:32 +01:00
spitz.c hw/i2c: Rename i2c_set_slave_address() -> i2c_slave_set_address() 2021-07-08 14:15:01 -05:00
stellaris.c hw/sd/ssi-sd: Do not create SD card within controller's realize 2021-12-15 08:38:16 +01:00
stm32f100_soc.c hw/arm/stm32f100: Wire up sysclk and refclk 2021-09-01 11:08:19 +01:00
stm32f205_soc.c hw/arm/stm32f205: Wire up sysclk and refclk 2021-09-01 11:08:19 +01:00
stm32f405_soc.c hw/arm: Don't include qemu-common.h unnecessarily 2021-12-15 10:35:26 +00:00
stm32vldiscovery.c arm: Remove system_clock_scale global 2021-09-01 11:08:21 +01:00
strongarm.c Do not include hw/boards.h if it's not really necessary 2021-05-02 17:24:51 +02:00
strongarm.h hw/arm/collie: Create the RAM in the board 2019-10-22 17:44:01 +01:00
sysbus-fdt.c arm: Eliminate all TPM related code if CONFIG_TPM is not set 2021-06-15 10:54:55 -04:00
tosa.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
versatilepb.c hw/arm/versatilepb hw/arm/vexpress: Replace drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
vexpress.c Block device patches patches for 2021-12-15 2021-12-15 12:14:44 -08:00
virt-acpi-build.c acpi: tpm: Add missing device identification objects 2022-01-07 19:30:13 -05:00
virt.c hw/arm/virt: Support CPU cluster on ARM virt machine 2022-01-20 11:47:52 +00:00
xilinx_zynq.c hw/arm/xilinx_zynq: Replace drive_get_next() by drive_get() 2021-12-15 14:55:40 +01:00
xlnx-versal-virt.c hw/arm/xlnx-versal-virt: Replace drive_get_next() by drive_get() 2021-12-15 08:38:16 +01:00
xlnx-versal.c hw/arm: xlnx-versal-virt: Add Xilinx eFUSE device 2021-09-30 13:42:10 +01:00
xlnx-zcu102.c hw/arm/xlnx-zcu102: Replace drive_get_next() by drive_get() 2021-12-15 14:55:25 +01:00
xlnx-zynqmp.c hw/arm: xlnx-zcu102: Add Xilinx eFUSE device 2021-09-30 13:42:10 +01:00
z2.c hw/arm: Constify VMStateDescription 2021-05-02 17:24:50 +02:00