mbox series

[v2,0/4] ppc/pnv: SMT support for powernv

Message ID 20230705120631.27670-1-npiggin@gmail.com
Headers show
Series ppc/pnv: SMT support for powernv | expand

Message

Nicholas Piggin July 5, 2023, 12:06 p.m. UTC
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.

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).

Since v1:
- Fix clang compile bug
- Fix LPAR-per-thread bug in CTRL/DPDES/msgsndp in patch 1
- Add 2-socket test case to powernv Linux boot avocado test
- Remove SMT caveat from docs/system/ppc/powernv.rst

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

 docs/system/ppc/powernv.rst  |  5 ---
 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/excp_helper.c     |  4 ++
 target/ppc/helper.h          |  1 +
 target/ppc/misc_helper.c     | 29 ++++++++++++
 target/ppc/spr_common.h      |  1 +
 target/ppc/translate.c       | 27 ++++++++---
 tests/avocado/ppc_powernv.py | 87 ++++++++++++++++++++++++++++++++++++
 12 files changed, 179 insertions(+), 19 deletions(-)
 create mode 100644 tests/avocado/ppc_powernv.py

Comments

Daniel Henrique Barboza July 5, 2023, 5:04 p.m. UTC | #1
Queued in gitlab.com/danielhb/qemu/tree/ppc-next. Thanks,


Daniel

On 7/5/23 09:06, Nicholas Piggin wrote:
> 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.
> 
> 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).
> 
> Since v1:
> - Fix clang compile bug
> - Fix LPAR-per-thread bug in CTRL/DPDES/msgsndp in patch 1
> - Add 2-socket test case to powernv Linux boot avocado test
> - Remove SMT caveat from docs/system/ppc/powernv.rst
> 
> 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
> 
>   docs/system/ppc/powernv.rst  |  5 ---
>   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/excp_helper.c     |  4 ++
>   target/ppc/helper.h          |  1 +
>   target/ppc/misc_helper.c     | 29 ++++++++++++
>   target/ppc/spr_common.h      |  1 +
>   target/ppc/translate.c       | 27 ++++++++---
>   tests/avocado/ppc_powernv.py | 87 ++++++++++++++++++++++++++++++++++++
>   12 files changed, 179 insertions(+), 19 deletions(-)
>   create mode 100644 tests/avocado/ppc_powernv.py
>