These patches implement enough to install a distro, boot, run SMP KVM
guests with libvirt with good performance using MTTCG (as reported by
Cedric).
There are a few more SPRs that need to be done, and per-LPAR SPRs are
mostly not annotated yet so it can't run in 1 LPAR mode. But those can
be added in time, it will take a bit of time to get everything exactly
as hardware does so I consider this good enough to run common
software usefully.
Thanks Joel and Cedric for reviews and testing.
Since RFC:
- Rebased against ppc-next (no conflicts vs upstream anyway).
- Add patch 4 avocado boot test with SMT, as was added with pseries SMT.
- Renamed POWERPC_FLAG_1LPAR to POWERPC_FLAG_SMT_1LPAR since it implies
SMT.
- Fixed typos, patch 1, 3 changelogs improvement (hopefully).
Thanks,
Nick
Nicholas Piggin (4):
target/ppc: Add LPAR-per-core vs per-thread mode flag
target/ppc: SMT support for the HID SPR
ppc/pnv: SMT support for powernv
tests/avocado: Add powernv machine test script
hw/ppc/pnv.c | 12 +++++
hw/ppc/pnv_core.c | 13 +++---
hw/ppc/spapr_cpu_core.c | 2 +
target/ppc/cpu.h | 3 ++
target/ppc/cpu_init.c | 14 +++++-
target/ppc/helper.h | 1 +
target/ppc/misc_helper.c | 21 +++++++++
target/ppc/spr_common.h | 1 +
target/ppc/translate.c | 32 ++++++++++++--
tests/avocado/ppc_powernv.py | 86 ++++++++++++++++++++++++++++++++++++
10 files changed, 173 insertions(+), 12 deletions(-)
create mode 100644 tests/avocado/ppc_powernv.py