All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH v7 00/35] migration, powerpc improvements
@ 2024-03-19  7:58 ` Nicholas Piggin
  0 siblings, 0 replies; 82+ messages in thread
From: Nicholas Piggin @ 2024-03-19  7:58 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Nicholas Piggin, Laurent Vivier, Andrew Jones, Paolo Bonzini,
	linuxppc-dev, kvm

Tree here
https://gitlab.com/npiggin/kvm-unit-tests/-/tree/powerpc?ref_type=heads

Sorry I lost the v6 tag on the previous series. Since then,
I merged the series with the migration ones since they touch
the same things.

Addressed almost all comments since the last post, I think just
one case where a "elif kvm" branch was kept in the powerpc/run
script because I find it convenient to add KVM specific things
there if needed.

Main changes since v6 (thanks to reviewers):
- Rebased on new stack backtrace patches, and cherry picks
  from v6.
- Move new files to SPDX headers.
- Improve comments on and simplify interrupt stack frame and
  backtracing.
- Add a docs/ directory with unittests.cfg documentation
  deduplicated from arch code and moved there, and document
  new machine= option. Not exactly 1:1 move of comments, so
  suggestions and improvements welcome there.
- Made new shell script a bit more consistent with style. I
  do have shellcheck working and some patches started, btw.,
  will look at submitting that after this series.
- Fix up a few unittests and gitlab CI to avoid failing on the
  QEMU TCG migration bug. Reduced runtime of some of the new
  migration tests.

Thanks,
Nick

Nicholas Piggin (35):
  arch-run: Add functions to help handle migration directives from test
  arch-run: Keep infifo open
  migration: Add a migrate_skip command
  (arm|s390): Use migrate_skip in test cases
  arch-run: Add a "continuous" migration option for tests
  gitlab-ci: Run migration selftest on s390x and powerpc
  common: add memory dirtying vs migration test
  powerpc: Fix KVM caps on POWER9 hosts
  powerpc: Fix stack backtrace termination
  powerpc: interrupt stack backtracing
  powerpc/sprs: Specify SPRs with data rather than code
  powerpc/sprs: Avoid taking PMU interrupts caused by register fuzzing
  doc: start documentation directory with unittests.cfg doc
  scripts: allow machine option to be specified in unittests.cfg
  scripts: Accommodate powerpc powernv machine differences
  powerpc: Support powernv machine with QEMU TCG
  powerpc: Fix emulator illegal instruction test for powernv
  powerpc/sprs: Test hypervisor registers on powernv machine
  powerpc: general interrupt tests
  powerpc: Add rtas stop-self support
  powerpc: Remove broken SMP exception stack setup
  powerpc: add SMP and IPI support
  powerpc: Permit ACCEL=tcg,thread=single
  powerpc: Avoid using larx/stcx. in spinlocks when only one CPU is
    running
  powerpc: Add atomics tests
  powerpc: Add timebase tests
  powerpc: Add MMU support
  common/sieve: Use vmalloc.h for setup_mmu definition
  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

 .gitlab-ci.yml                           |  26 +-
 MAINTAINERS                              |   1 -
 Makefile                                 |   2 +-
 arm/gic.c                                |  21 +-
 arm/unittests.cfg                        |  26 +-
 common/memory-verify.c                   |  67 +++
 common/selftest-migration.c              |  26 +-
 common/sieve.c                           |  15 +-
 configure                                |  58 +-
 docs/unittests.txt                       |  95 ++++
 lib/libcflat.h                           |   2 -
 lib/migrate.c                            |  37 +-
 lib/migrate.h                            |   5 +
 lib/{ppc64 => powerpc}/asm-offsets.c     |   7 +
 lib/{ppc64 => powerpc}/asm/asm-offsets.h |   0
 lib/powerpc/asm/atomic.h                 |   6 +
 lib/powerpc/asm/barrier.h                |  12 +
 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                    |  10 +
 lib/powerpc/asm/opal.h                   |  22 +
 lib/powerpc/asm/page.h                   |  65 +++
 lib/powerpc/asm/pgtable-hwdef.h          |  66 +++
 lib/powerpc/asm/pgtable.h                | 125 +++++
 lib/powerpc/asm/processor.h              |  63 +++
 lib/{ppc64 => powerpc}/asm/ptrace.h      |  22 +-
 lib/powerpc/asm/reg.h                    |  42 ++
 lib/powerpc/asm/rtas.h                   |   2 +
 lib/powerpc/asm/setup.h                  |   3 +-
 lib/powerpc/asm/smp.h                    |  50 +-
 lib/powerpc/asm/spinlock.h               |  11 +
 lib/powerpc/asm/stack.h                  |   3 +
 lib/{ppc64 => powerpc}/asm/vpa.h         |   0
 lib/powerpc/hcall.c                      |   4 +-
 lib/powerpc/io.c                         |  41 +-
 lib/powerpc/io.h                         |   6 +
 lib/powerpc/mmu.c                        | 274 ++++++++++
 lib/powerpc/opal-calls.S                 |  50 ++
 lib/powerpc/opal.c                       |  76 +++
 lib/powerpc/processor.c                  |  91 +++-
 lib/powerpc/rtas.c                       |  81 ++-
 lib/powerpc/setup.c                      | 159 +++++-
 lib/powerpc/smp.c                        | 287 ++++++++--
 lib/powerpc/spinlock.c                   |  33 ++
 lib/powerpc/stack.c                      |  53 ++
 lib/ppc64/.gitignore                     |   1 -
 lib/ppc64/asm/barrier.h                  |   9 -
 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                    |   8 -
 lib/s390x/io.c                           |   1 +
 lib/s390x/uv.h                           |   1 +
 lib/vmalloc.c                            |   7 +
 lib/vmalloc.h                            |   2 +
 lib/x86/vm.h                             |   1 +
 powerpc/Makefile                         | 111 +++-
 powerpc/Makefile.common                  |  85 ---
 powerpc/Makefile.ppc64                   |  27 -
 powerpc/atomics.c                        | 374 +++++++++++++
 powerpc/cstart64.S                       |  66 ++-
 powerpc/emulator.c                       |  16 +
 powerpc/interrupts.c                     | 516 ++++++++++++++++++
 powerpc/memory-verify.c                  |   1 +
 powerpc/pmu.c                            | 336 ++++++++++++
 powerpc/run                              |  42 +-
 powerpc/selftest.c                       |   4 +-
 powerpc/sieve.c                          |   1 +
 powerpc/smp.c                            | 348 ++++++++++++
 powerpc/sprs.c                           | 659 ++++++++++++++++-------
 powerpc/timebase.c                       | 329 +++++++++++
 powerpc/tm.c                             |   4 +-
 powerpc/unittests.cfg                    | 101 +++-
 riscv/unittests.cfg                      |  26 +-
 s390x/Makefile                           |   1 +
 s390x/memory-verify.c                    |   1 +
 s390x/migration-cmm.c                    |   8 +-
 s390x/migration-skey.c                   |   4 +-
 s390x/migration.c                        |   1 +
 s390x/mvpg.c                             |   1 +
 s390x/selftest.c                         |   1 +
 s390x/unittests.cfg                      |  37 +-
 scripts/arch-run.bash                    | 116 +++-
 scripts/common.bash                      |   8 +-
 scripts/runtime.bash                     |  22 +-
 x86/pmu.c                                |   1 +
 x86/pmu_lbr.c                            |   1 +
 x86/unittests.cfg                        |  26 +-
 x86/vmexit.c                             |   1 +
 x86/vmware_backdoors.c                   |   1 +
 99 files changed, 4729 insertions(+), 657 deletions(-)
 create mode 100644 common/memory-verify.c
 create mode 100644 docs/unittests.txt
 rename lib/{ppc64 => powerpc}/asm-offsets.c (94%)
 rename lib/{ppc64 => powerpc}/asm/asm-offsets.h (100%)
 create mode 100644 lib/powerpc/asm/atomic.h
 create mode 100644 lib/powerpc/asm/barrier.h
 rename lib/{ppc64 => powerpc}/asm/bitops.h (69%)
 rename lib/{ppc64 => powerpc}/asm/io.h (50%)
 create mode 100644 lib/powerpc/asm/mmu.h
 create mode 100644 lib/powerpc/asm/opal.h
 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 (59%)
 create mode 100644 lib/powerpc/asm/spinlock.h
 rename lib/{ppc64 => powerpc}/asm/vpa.h (100%)
 create mode 100644 lib/powerpc/mmu.c
 create mode 100644 lib/powerpc/opal-calls.S
 create mode 100644 lib/powerpc/opal.c
 create mode 100644 lib/powerpc/spinlock.c
 create mode 100644 lib/powerpc/stack.c
 delete mode 100644 lib/ppc64/.gitignore
 delete mode 100644 lib/ppc64/asm/barrier.h
 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/interrupts.c
 create mode 120000 powerpc/memory-verify.c
 create mode 100644 powerpc/pmu.c
 create mode 120000 powerpc/sieve.c
 create mode 100644 powerpc/smp.c
 create mode 100644 powerpc/timebase.c
 create mode 120000 s390x/memory-verify.c

-- 
2.42.0


^ permalink raw reply	[flat|nested] 82+ messages in thread

end of thread, other threads:[~2024-04-05  4:55 UTC | newest]

Thread overview: 82+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-19  7:58 [kvm-unit-tests PATCH v7 00/35] migration, powerpc improvements Nicholas Piggin
2024-03-19  7:58 ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 01/35] arch-run: Add functions to help handle migration directives from test Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-25 15:54   ` Thomas Huth
2024-03-25 15:54     ` Thomas Huth
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 02/35] arch-run: Keep infifo open Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 03/35] migration: Add a migrate_skip command Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 04/35] (arm|s390): Use migrate_skip in test cases Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 05/35] arch-run: Add a "continuous" migration option for tests Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 06/35] gitlab-ci: Run migration selftest on s390x and powerpc Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-25 16:08   ` Thomas Huth
2024-03-25 16:08     ` Thomas Huth
2024-03-28  8:16     ` Nicholas Piggin
2024-03-28  8:16       ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 07/35] common: add memory dirtying vs migration test Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-28 17:37   ` Thomas Huth
2024-03-28 17:37     ` Thomas Huth
2024-04-05  4:54     ` Nicholas Piggin
2024-04-05  4:54       ` Nicholas Piggin
2024-03-19  7:58 ` [kvm-unit-tests PATCH v7 08/35] powerpc: Fix KVM caps on POWER9 hosts Nicholas Piggin
2024-03-19  7:58   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 09/35] powerpc: Fix stack backtrace termination Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 10/35] powerpc: interrupt stack backtracing Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 11/35] powerpc/sprs: Specify SPRs with data rather than code Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 12/35] powerpc/sprs: Avoid taking PMU interrupts caused by register fuzzing Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 13/35] doc: start documentation directory with unittests.cfg doc Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 14/35] scripts: allow machine option to be specified in unittests.cfg Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 15/35] scripts: Accommodate powerpc powernv machine differences Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 16/35] powerpc: Support powernv machine with QEMU TCG Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 17/35] powerpc: Fix emulator illegal instruction test for powernv Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 18/35] powerpc/sprs: Test hypervisor registers on powernv machine Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 19/35] powerpc: general interrupt tests Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 20/35] powerpc: Add rtas stop-self support Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 21/35] powerpc: Remove broken SMP exception stack setup Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 22/35] powerpc: add SMP and IPI support Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 23/35] powerpc: Permit ACCEL=tcg,thread=single Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 24/35] powerpc: Avoid using larx/stcx. in spinlocks when only one CPU is running Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 25/35] powerpc: Add atomics tests Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 26/35] powerpc: Add timebase tests Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 27/35] powerpc: Add MMU support Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 28/35] common/sieve: Use vmalloc.h for setup_mmu definition Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 29/35] common/sieve: Support machines without MMU Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 30/35] powerpc: Add sieve.c common test Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 31/35] powerpc: add usermode support Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 32/35] powerpc: add pmu tests Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 33/35] configure: Make arch_libdir a first-class entity Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 34/35] powerpc: Remove remnants of ppc64 directory and build structure Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin
2024-03-19  7:59 ` [kvm-unit-tests PATCH v7 35/35] powerpc: gitlab CI update Nicholas Piggin
2024-03-19  7:59   ` Nicholas Piggin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.