[kvm-unit-tests PATCH v10 00/15] powerpc improvements

Nicholas Piggin npiggin at gmail.com
Wed Jun 12 15:23:05 AEST 2024


Tree here

https://gitlab.com/npiggin/kvm-unit-tests/-/tree/powerpc

Since v9:
- Rebase after a good chunk of patches were merged.
- Review from Thomas:
  - TCG/KVM host query is moved to the start of the series.
  - Changelog for atomics test.
  - Dropped spinlock patch change for now.
  - Fixed tlbie assembly long lines in mmu patch.
  - Use fdt64 accessor for 64-bit dt value.
  - Upgrade powerpc gitlab CI to Fedora 40 and enable more tests
  - Several other improvements.
- Reduced some long lines.
- Fixed some SPDX headers.
- New patch for adding a panic test. s390x is the only other panic
  test user but it requires KVM so I couldn't see if run_tests.sh
  looks sane there, but the harness needed a fix to work on powerpc.

Thanks,
Nick

Nicholas Piggin (15):
  powerpc: Add facility to query TCG or KVM host
  powerpc: Add atomics tests
  powerpc: Add timebase tests
  powerpc: Add MMU support
  common/sieve: Support machines without MMU
  powerpc: Add sieve.c common test
  powerpc: add usermode support
  powerpc: add pmu tests
  configure: Make arch_libdir a first-class entity
  powerpc: Remove remnants of ppc64 directory and build structure
  powerpc: gitlab CI update
  scripts/arch-run.bash: Fix run_panic() success exit status
  powerpc: Add a panic test
  powerpc/gitlab-ci: Upgrade powerpc to Fedora 40
  powerpc/gitlab-ci: Enable more tests with Fedora 40

 .gitlab-ci.yml                           |  36 +-
 MAINTAINERS                              |   1 -
 Makefile                                 |   2 +-
 common/sieve.c                           |  14 +-
 configure                                |  63 ++-
 lib/{ppc64 => powerpc}/asm-offsets.c     |   0
 lib/{ppc64 => powerpc}/asm/asm-offsets.h |   0
 lib/{ppc64 => powerpc}/asm/atomic.h      |   0
 lib/{ppc64 => powerpc}/asm/barrier.h     |   4 +-
 lib/{ppc64 => powerpc}/asm/bitops.h      |   4 +-
 lib/powerpc/asm/hcall.h                  |   6 +
 lib/{ppc64 => powerpc}/asm/io.h          |   4 +-
 lib/powerpc/asm/mmu.h                    |  86 ++++
 lib/{ppc64 => powerpc}/asm/opal.h        |   4 +-
 lib/powerpc/asm/page.h                   |  65 +++
 lib/powerpc/asm/pgtable-hwdef.h          |  66 +++
 lib/powerpc/asm/pgtable.h                | 125 +++++
 lib/powerpc/asm/processor.h              |  15 +
 lib/{ppc64 => powerpc}/asm/ptrace.h      |   6 +-
 lib/powerpc/asm/reg.h                    |  14 +
 lib/powerpc/asm/rtas.h                   |   1 +
 lib/powerpc/asm/setup.h                  |   1 +
 lib/powerpc/asm/smp.h                    |   3 +
 lib/powerpc/asm/spinlock.h               |   6 +
 lib/powerpc/asm/stack.h                  |   3 +
 lib/{ppc64 => powerpc}/asm/vpa.h         |   0
 lib/powerpc/io.c                         |   7 +
 lib/powerpc/mmu.c                        | 260 +++++++++++
 lib/{ppc64 => powerpc}/opal-calls.S      |   4 +-
 lib/{ppc64 => powerpc}/opal.c            |   0
 lib/powerpc/processor.c                  |  47 ++
 lib/powerpc/rtas.c                       |  19 +
 lib/powerpc/setup.c                      |  61 ++-
 lib/{ppc64 => powerpc}/stack.c           |   0
 lib/ppc64/.gitignore                     |   1 -
 lib/ppc64/asm/handlers.h                 |   1 -
 lib/ppc64/asm/hcall.h                    |   1 -
 lib/ppc64/asm/memory_areas.h             |   6 -
 lib/ppc64/asm/page.h                     |   1 -
 lib/ppc64/asm/ppc_asm.h                  |   1 -
 lib/ppc64/asm/processor.h                |   1 -
 lib/ppc64/asm/reg.h                      |   1 -
 lib/ppc64/asm/rtas.h                     |   1 -
 lib/ppc64/asm/setup.h                    |   1 -
 lib/ppc64/asm/smp.h                      |   1 -
 lib/ppc64/asm/spinlock.h                 |   6 -
 lib/ppc64/asm/stack.h                    |  11 -
 lib/vmalloc.c                            |   7 +
 lib/vmalloc.h                            |   2 +
 powerpc/Makefile                         | 111 ++++-
 powerpc/Makefile.common                  |  89 ----
 powerpc/Makefile.ppc64                   |  30 --
 powerpc/atomics.c                        | 386 ++++++++++++++++
 powerpc/interrupts.c                     | 129 +++++-
 powerpc/mmu.c                            | 225 +++++++++
 powerpc/pmu.c                            | 562 +++++++++++++++++++++++
 powerpc/run                              |   2 +-
 powerpc/selftest.c                       |  18 +-
 powerpc/sieve.c                          |   1 +
 powerpc/sprs.c                           |   2 +-
 powerpc/timebase.c                       | 350 ++++++++++++++
 powerpc/tm.c                             |   2 +-
 powerpc/unittests.cfg                    |  64 ++-
 scripts/arch-run.bash                    |   1 +
 64 files changed, 2696 insertions(+), 245 deletions(-)
 rename lib/{ppc64 => powerpc}/asm-offsets.c (100%)
 rename lib/{ppc64 => powerpc}/asm/asm-offsets.h (100%)
 rename lib/{ppc64 => powerpc}/asm/atomic.h (100%)
 rename lib/{ppc64 => powerpc}/asm/barrier.h (83%)
 rename lib/{ppc64 => powerpc}/asm/bitops.h (69%)
 rename lib/{ppc64 => powerpc}/asm/io.h (50%)
 create mode 100644 lib/powerpc/asm/mmu.h
 rename lib/{ppc64 => powerpc}/asm/opal.h (90%)
 create mode 100644 lib/powerpc/asm/page.h
 create mode 100644 lib/powerpc/asm/pgtable-hwdef.h
 create mode 100644 lib/powerpc/asm/pgtable.h
 rename lib/{ppc64 => powerpc}/asm/ptrace.h (89%)
 create mode 100644 lib/powerpc/asm/spinlock.h
 rename lib/{ppc64 => powerpc}/asm/vpa.h (100%)
 create mode 100644 lib/powerpc/mmu.c
 rename lib/{ppc64 => powerpc}/opal-calls.S (88%)
 rename lib/{ppc64 => powerpc}/opal.c (100%)
 rename lib/{ppc64 => powerpc}/stack.c (100%)
 delete mode 100644 lib/ppc64/.gitignore
 delete mode 100644 lib/ppc64/asm/handlers.h
 delete mode 100644 lib/ppc64/asm/hcall.h
 delete mode 100644 lib/ppc64/asm/memory_areas.h
 delete mode 100644 lib/ppc64/asm/page.h
 delete mode 100644 lib/ppc64/asm/ppc_asm.h
 delete mode 100644 lib/ppc64/asm/processor.h
 delete mode 100644 lib/ppc64/asm/reg.h
 delete mode 100644 lib/ppc64/asm/rtas.h
 delete mode 100644 lib/ppc64/asm/setup.h
 delete mode 100644 lib/ppc64/asm/smp.h
 delete mode 100644 lib/ppc64/asm/spinlock.h
 delete mode 100644 lib/ppc64/asm/stack.h
 delete mode 100644 powerpc/Makefile.common
 delete mode 100644 powerpc/Makefile.ppc64
 create mode 100644 powerpc/atomics.c
 create mode 100644 powerpc/mmu.c
 create mode 100644 powerpc/pmu.c
 create mode 120000 powerpc/sieve.c
 create mode 100644 powerpc/timebase.c

-- 
2.45.1



More information about the Linuxppc-dev mailing list