qemu/include/hw/ppc
Nicholas Piggin 3b5ea01e98 ppc/pnv: Add an LPAR per core machine option
Recent POWER CPUs can operate in "LPAR per core" or "LPAR per thread"
modes. In per-core mode, some SPRs and IPI doorbells are shared between
threads in a core. In per-thread mode, supervisor and user state is
not shared between threads.

OpenPOWER systems after POWER8 use LPAR per thread mode, and it is
required for KVM. Enterprise systems use LPAR per core mode, as they
partition the machine by core.

Implement a lpar-per-core machine option for powernv machines. This
is fixed true for POWER8 machines, and defaults off for P9 and P10.

With this change, powernv8 SMT now works sufficiently to run Linux,
with a single socket. Multi-threaded KVM guests still have problems,
as does multi-socket Linux boot.

Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
2024-07-26 09:21:06 +10:00
..
fdt.h hw/ppc: Clean up local variable shadowing in _FDT helper routine 2023-09-29 10:07:17 +02:00
mac_dbdma.h
openpic_kvm.h
openpic.h ppc: spelling fixes 2023-09-20 07:54:34 +03:00
pnv_adu.h ppc/pnv: Implement ADU access to LPC space 2024-07-26 09:21:06 +10:00
pnv_chip.h ppc/pnv: Add an LPAR per core machine option 2024-07-26 09:21:06 +10:00
pnv_chiptod.h ppc/pnv: Implement the ChipTOD to Core transfer 2024-02-23 23:24:43 +10:00
pnv_core.h ppc/pnv: Add an LPAR per core machine option 2024-07-26 09:21:06 +10:00
pnv_homer.h
pnv_i2c.h ppc/pnv: Add an I2C controller model 2023-11-07 15:49:41 -03:00
pnv_lpc.h ppc/pnv: Implement ADU access to LPC space 2024-07-26 09:21:06 +10:00
pnv_n1_chiplet.h hw/ppc: Add N1 chiplet model 2024-02-23 23:24:42 +10:00
pnv_nest_pervasive.h hw/ppc: Add pnv nest pervasive common chiplet model 2024-02-23 23:24:42 +10:00
pnv_occ.h
pnv_pnor.h
pnv_psi.h hw/ppc: Avoid using Monitor in pnv_psi_pic_print_info() 2024-06-19 12:40:49 +02:00
pnv_sbe.h
pnv_xive.h hw/ppc: Avoid using Monitor in pnv_xive2_pic_print_info() 2024-06-19 12:40:49 +02:00
pnv_xscom.h ppc/pnv: Begin a more complete ADU LPC model for POWER9/10 2024-07-26 09:21:06 +10:00
pnv.h ppc/pnv: Add an LPAR per core machine option 2024-07-26 09:21:06 +10:00
ppc4xx.h hw/ppc/ppc4xx_pci: Extract PCI host definitions to hw/pci-host/ppc4xx.h 2024-02-22 12:47:40 +01:00
ppc_e500.h
ppc.h target/ppc: Move PowerPCCPUClass definition to 'cpu.h' 2023-11-07 12:13:28 +01:00
spapr_cpu_core.h ppc/spapr: Add a nested state struct 2023-06-25 22:41:30 +02:00
spapr_drc.h
spapr_irq.h hw/ppc: Avoid using Monitor in spapr_irq_print_info() 2024-06-19 12:40:49 +02:00
spapr_nested.h spapr: nested: Use correct source for parttbl info for nested PAPR API. 2024-03-13 02:47:04 +10:00
spapr_numa.h
spapr_nvdimm.h
spapr_ovec.h
spapr_tpm_proxy.h
spapr_vio.h
spapr_xive.h
spapr.h spapr: Migrate ail-mode-3 spapr cap 2024-07-26 09:21:06 +10:00
vof.h
xics_spapr.h
xics.h hw/ppc: Avoid using Monitor in ics_pic_print_info() 2024-06-19 12:40:49 +02:00
xive2_regs.h hw/ppc: Avoid using Monitor in xive2_end_pic_print_info() 2024-06-19 12:40:49 +02:00
xive2.h
xive_regs.h hw/ppc: Avoid using Monitor in xive_end_eas_pic_print_info() 2024-06-19 12:40:49 +02:00
xive.h hw/ppc: Avoid using Monitor in xive_source_pic_print_info() 2024-06-19 12:40:49 +02:00