qemu-e2k/hw/ppc
Daniel Henrique Barboza 876ab8d89d spapr_numa: use spapr_numa_get_vcpu_assoc() in home_node hcall
The current implementation of h_home_node_associativity hard codes
the values of associativity domains of the vcpus. Let's make
it consider the values already initialized in spapr->numa_assoc_array,
via the spapr_numa_get_vcpu_assoc() helper.

We want to set it and forget it, and for that we also need to
assert that we don't overflow the registers of the hypercall.
>From R4 to R9 we can squeeze in 12 associativity domains for
vcpus, so let's assert that VCPU_ASSOC_SIZE -1 isn't greater
than that.

Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20200904172422.617460-4-danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2020-09-08 11:34:30 +10:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c ppc/e500: Use start-powered-off CPUState property 2020-09-08 10:08:43 +10:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c ppc/e500: use memdev for RAM 2020-02-19 16:50:00 +00:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig ppc/pnv: Fix PCI_EXPRESS dependency 2020-02-21 09:15:03 +11:00
mac_newworld.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mac_oldworld.c qom: Put name parameter before value / visitor parameter 2020-07-10 15:18:08 +02:00
mac.h ide: Include hw/ide/internal a bit less outside hw/ide/ 2019-08-16 13:31:52 +02:00
meson.build ppc: introducing spapr_numa.c NUMA code helper 2020-09-08 10:08:43 +10:00
mpc8544_guts.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
mpc8544ds.c ppc/e500: use memdev for RAM 2020-02-19 16:50:00 +00:00
pnv_bmc.c ppc/pnv: Add a HIOMAP erase command 2020-09-08 10:08:42 +10:00
pnv_core.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
pnv_homer.c ppc/pnv: change the PowerNV machine devices to be non user creatable 2020-02-02 14:07:57 +11:00
pnv_lpc.c ppc/pnv: Fix TypeInfo of PnvLpcController abstract class 2020-09-08 10:08:42 +10:00
pnv_occ.c ppc/pnv: change the PowerNV machine devices to be non user creatable 2020-02-02 14:07:57 +11:00
pnv_pnor.c ppc/pnv: improve error logging when a PNOR update fails 2020-02-02 14:07:57 +11:00
pnv_psi.c ppc/pnv: Make PSI device types not user creatable 2020-07-20 09:21:39 +10:00
pnv_xscom.c ppc/pnv: Introduce PnvChipClass::xscom_pcba() method 2019-12-17 10:59:11 +11:00
pnv.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
ppc4xx_devs.c bamboo, sam460ex: Tidy up error message for unsupported RAM size 2020-04-29 08:01:52 +02:00
ppc4xx_pci.c hw/ppc/ppc4xx_pci: Replace pointless warning by assert() 2020-09-08 10:08:43 +10:00
ppc405_boards.c ppc/ppc405_boards: Remove unnecessary NULL check 2020-03-24 11:56:37 +11:00
ppc405_uc.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM 2020-02-19 16:50:00 +00:00
ppc440_pcix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_uc.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
ppc.c hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackware BIOS 2020-02-02 14:07:57 +11:00
ppce500_spin.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
prep_systemio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
prep.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
rs6000_mc.c error: Avoid unnecessary error_propagate() after error_setg() 2020-07-10 15:18:08 +02:00
sam460ex.c hw/i2c: Rename i2c_create_slave() as i2c_slave_create_simple() 2020-07-16 12:30:54 -05:00
spapr_caps.c spapr: Forbid nested KVM-HV in pre-power9 compat mode 2020-08-12 13:16:27 +10:00
spapr_cpu_core.c ppc/spapr: Use start-powered-off CPUState property 2020-09-08 10:08:43 +10:00
spapr_drc.c qom: Change object_get_canonical_path_component() not to malloc 2020-07-21 16:23:43 +02:00
spapr_events.c ppc/spapr: Don't kill the guest if a recovered FWNMI machine check delivery fails 2020-04-07 08:55:10 +10:00
spapr_hcall.c spapr: move h_home_node_associativity to spapr_numa.c 2020-09-08 10:37:32 +10:00
spapr_iommu.c qdev: Convert bus-less devices to qdev_realize() with Coccinelle 2020-06-15 22:06:04 +02:00
spapr_irq.c spapr/xive: Use the xics flag to check for XIVE-only IRQ backends 2020-09-08 10:08:42 +10:00
spapr_numa.c spapr_numa: use spapr_numa_get_vcpu_assoc() in home_node hcall 2020-09-08 11:34:30 +10:00
spapr_nvdimm.c spapr: introduce SpaprMachineState::numa_assoc_array 2020-09-08 10:08:43 +10:00
spapr_ovec.c spapr: Rename DT functions to newer naming convention 2020-03-17 17:00:19 +11:00
spapr_pci_nvlink2.c spapr_numa: move NVLink2 associativity handling to spapr_numa.c 2020-09-08 10:08:43 +10:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_pci.c spapr: introduce SpaprMachineState::numa_assoc_array 2020-09-08 10:08:43 +10:00
spapr_rng.c qom: Drop object_property_set_description() parameter @errp 2020-05-15 07:06:49 +02:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas.c pseries: fix kvmppc_set_fwnmi() 2020-07-27 11:09:25 +10:00
spapr_rtc.c qom: Drop parameter @errp of object_property_add() & friends 2020-05-15 07:07:58 +02:00
spapr_tpm_proxy.c qdev: Unrealize must not fail 2020-05-15 07:08:14 +02:00
spapr_vio.c spapr: Fix typos in comments and macro indentation 2020-06-26 09:22:30 +10:00
spapr.c spapr, spapr_numa: move lookup-arrays handling to spapr_numa.c 2020-09-08 10:08:43 +10:00
trace-events qom: Change object_get_canonical_path_component() not to malloc 2020-07-21 16:23:43 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
virtex_ml507.c sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00