Re: [kvm-unit-tests PATCH 00/18] arm/arm64: add smp support

Marcelo Tosatti
2015-02-27T00:47:16Z

On Sun, Feb 01, 2015 at 07:34:28PM +0100, Andrew Jones wrote:
> This series extends the kvm-unit-tests/arm[64] framework to support smp.
> A break down of the patches is as follows
>
> 01-02: prepare general framework for smp use
> 03-06: arm/arm64 fixups not 100% related to this series,
> but need to post some time...
> 07-09: add thread_info (for per-thread data) and suck some global
> data into it
> 10-11: add cpumask support (for per-cpu data) and suck some more
> global data in
> 12: add arm64 simple spinlock implementation
> 13-14: add some PSCI support
> 15-16: further prep for smp_boot_secondary
> 17: finally add smp_boot_secondary
> 18: as usual, add a selftest to make sure it all works
>
> These patches are also available here:
> https://github.com/rhdrjones/kvm-unit-tests/tree/arm/smp
>
> Thanks in advance for reviews!
>
>
> Andrew Jones (18):
> x86: expose spin_lock/unlock to lib code
> lib/report: guard access to counters
> arm: fixups: add barriers, actually set MAIR
> arm64: fixup: use id_aa64mmfr0_el1 to set tcr
> arm/arm64: processor.[ch] cleanups
> arm/arm64: get rid of get_sp()
> arm/arm64: introduce thread_info
> arm/arm64: add per thread user_mode flag
> arm/arm64: maintain per thread exception handlers
> arm/arm64: add simple cpumask API
> arm/arm64: make mmu_on per cpu
> arm64: implement spinlocks
> arm/arm64: import include/uapi/linux/psci.h
> arm/arm64: add some PSCI API
> arm/arm64: add cpu_relax() and friends
> arm: clarify comment about exception stack use
> arm/arm64: add smp_boot_secondary
> arm/arm64: Add smp selftest
>
> arm/cstart.S | 47 +++++++++++++----
> arm/cstart64.S | 48 +++++++++++-------
> arm/flat.lds | 6 +++
> arm/selftest.c | 70 +++++++++++++++++++++++--
> arm/unittests.cfg | 11 +++-
> config/config-arm-common.mak | 3 ++
> config/config-arm64.mak | 1 +
> lib/arm/asm-offsets.c | 3 ++
> lib/arm/asm/barrier.h | 5 ++
> lib/arm/asm/bitops.h | 53 +++++++++++++++++++
> lib/arm/asm/cpumask.h | 118 +++++++++++++++++++++++++++++++++++++++++++
> lib/arm/asm/mmu-api.h | 1 +
> lib/arm/asm/processor.h | 12 ++++-
> lib/arm/asm/psci.h | 15 ++++++
> lib/arm/asm/smp.h | 56 ++++++++++++++++++++
> lib/arm/asm/thread_info.h | 60 ++++++++++++++++++++++
> lib/arm/asm/uapi-psci.h | 73 ++++++++++++++++++++++++++
> lib/arm/bitops.c | 81 +++++++++++++++++++++++++++++
> lib/arm/mmu.c | 15 ++++--
> lib/arm/processor.c | 44 +++++++++++-----
> lib/arm/psci.c | 49 ++++++++++++++++++
> lib/arm/setup.c | 11 +++-
> lib/arm/smp.c | 57 +++++++++++++++++++++
> lib/arm64/asm-offsets.c | 2 +
> lib/arm64/asm/barrier.h | 5 ++
> lib/arm64/asm/bitops.h | 51 +++++++++++++++++++
> lib/arm64/asm/cpumask.h | 1 +
> lib/arm64/asm/processor.h | 18 ++++++-
> lib/arm64/asm/psci.h | 15 ++++++
> lib/arm64/asm/smp.h | 1 +
> lib/arm64/asm/spinlock.h | 8 +--
> lib/arm64/asm/thread_info.h | 1 +
> lib/arm64/asm/uapi-psci.h | 1 +
> lib/arm64/processor.c | 81 +++++++++++++++++++----------
> lib/arm64/spinlock.c | 43 ++++++++++++++++
> lib/report.c | 16 ++++++
> lib/x86/asm/spinlock.h | 11 ++++
> lib/x86/smp.h | 7 +--
> 38 files changed, 1008 insertions(+), 92 deletions(-)
> create mode 100644 lib/arm/asm/bitops.h
> create mode 100644 lib/arm/asm/cpumask.h
> create mode 100644 lib/arm/asm/psci.h
> create mode 100644 lib/arm/asm/smp.h
> create mode 100644 lib/arm/asm/thread_info.h
> create mode 100644 lib/arm/asm/uapi-psci.h
> create mode 100644 lib/arm/bitops.c
> create mode 100644 lib/arm/psci.c
> create mode 100644 lib/arm/smp.c
> create mode 100644 lib/arm64/asm/bitops.h
> create mode 100644 lib/arm64/asm/cpumask.h
> create mode 100644 lib/arm64/asm/psci.h
> create mode 100644 lib/arm64/asm/smp.h
> create mode 100644 lib/arm64/asm/thread_info.h
> create mode 100644 lib/arm64/asm/uapi-psci.h
> create mode 100644 lib/arm64/spinlock.c
> create mode 100644 lib/x86/asm/spinlock.h
>
> --
> 1.9.3

Applied, thanks.