Re: [kvm-unit-tests PATCH v2 00/14] ppc64: initial drop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 08/02/2016 19:53, Andrew Jones wrote:
> It's been a loooong time since I posted v1 of this series, but thanks
> to Thomas' poking, and even volunteering to help move v2 along, I've
> finally picked it back up.
> 
> v2:
>   Besides rebasing on latest master, v2 addresses all of David's comments
>     - assembler cleanup
>     - jump into the RTAS blob we get from DT, instead of reproducing it
>     - don't store the RTAS root node, always hunt it down
> 
>   v2 didn't address debug-exit, and we still need a solution for that.
>   Plugging chr-testdev into an spapr vty is probably what we should
>   investigate first (as was suggested by Alex Graf under the v1 review).
>   For this v2 I just kept the hack from v1, but simplified it and
>   explicitly call it out as the hack that it is.
> 
> Additional known issues:
>   Latest F22 cross-compiler (gcc5 based) doesn't generate working
>   code with this series. I didn't try to debug. The 4.9 based compiler
>   I initially used on v1 works, so I reverted to that one.
> 
> Testing:
>   I only tested with qemu-system-ppc64 (latest) on x86_64 so far. I'll
>   try to get a machine to test with real hardware (and KVM) unless
>   someone (hi Thomas :-) beats me to it.

I've tested the series from the branch initial-drop-v2:

- On RHEL 7.2 ppc64 (ppc64le is not supported ?), POWER8 + kvm_hv.
  I have (sometime) an error:

./powerpc/run: line 60: exit: too many arguments
PASS selftest-setup


Which is in fact:

/usr/libexec/qemu-kvm -machine pseries,accel=kvm -bios
powerpc/boot_rom.bin -display none -serial stdio -kernel
powerpc/selftest.elf -smp 2 -m 256 -append setup smp=2 mem=256
PASS: selftest: setup: smp: nr_cpus = 2
PASS: selftest: setup: mem: size = 256 MB

SUMMARY: 2 tests, 0 unexpected failures

EXIT: STATUS=1
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=127
RTAS power-off returned 0
lib/powerpc/rtas.c:119: assert failed

EXIT: STATUS=12
Return value from qemu: 1 127 127 127 127 127 127 127 127 127 127 127 12
./powerpc/run: line 60: exit: too many arguments


- On fedora 23 on PowerMac G5 (ppc64) kvm_pr, it doesn't work at all:

lib/powerpc/setup.c:60: assert failed
 59         assert(freemem_start >= mem_start && freemem_start < mem_end);

The values I have are:
freemem_start 434000 mem_start 8000000 mem_end 10000000

> 
> Standard cover-letter summary:
>   This series brings basic setup; starts a test's C entry point, main(),
>   and printf, exit, and malloc work. Three more series should follow this
>   one which must bring; vector support, mmu support, and smp support, at
>   which point I believe the framework could just evolve with the creation
>   of unit tests.
> 
> Patches also available here
> https://github.com/rhdrjones/kvm-unit-tests/commits/ppc64/initial-drop-v2
> 
> 
> Andrew Jones (14):
>   lib: asm-generic: add missing casts
>   lib: share arm-selftest utility functions
>   config: no need to mix arch makefiles
>   powerpc/ppc64: start skeleton framework
>   powerpc/pp64: ppc-ify makefiles and linker script
>   powerpc/ppc64: add boot rom source
>   powerpc/ppc64: add bootloader to bounce into memory
>   powerpc/ppc64: add HV putchar
>   powerpc/ppc64: adapt arm's setup
>   powerpc/ppc64: relocate linker VMAs
>   powerpc/ppc64: add run script and unittests.cfg
>   mkstandalone: add support for powerpc
>   powerpc/ppc64: add RTAS support
>   powerpc/ppc64: HACK: make a fake debug-exit
> 
>  Makefile                                           |   2 +-
>  README                                             |   3 +-
>  arm/Makefile                                       |   1 +
>  config/config-arm.mak => arm/Makefile.arm          |   2 +-
>  config/config-arm64.mak => arm/Makefile.arm64      |   2 +-
>  .../config-arm-common.mak => arm/Makefile.common   |   3 +-
>  arm/selftest.c                                     |  45 +++-----
>  configure                                          |   6 ++
>  lib/asm-generic/io.h                               |  12 +--
>  lib/libcflat.h                                     |  11 +-
>  lib/powerpc/.gitignore                             |   1 +
>  lib/powerpc/asm/rtas.h                             |  26 +++++
>  lib/powerpc/asm/setup.h                            |  27 +++++
>  lib/powerpc/io.c                                   |  37 +++++++
>  lib/powerpc/mmu.c                                  |   0
>  lib/powerpc/rtas.c                                 | 120 +++++++++++++++++++++
>  lib/powerpc/setup.c                                |  91 ++++++++++++++++
>  lib/powerpc/smp.c                                  |   0
>  lib/ppc64/.gitignore                               |   1 +
>  lib/ppc64/asm-offsets.c                            |  12 +++
>  lib/ppc64/asm/asm-offsets.h                        |   1 +
>  lib/ppc64/asm/io.h                                 |   5 +
>  lib/ppc64/asm/page.h                               |   1 +
>  lib/ppc64/asm/rtas.h                               |   1 +
>  lib/ppc64/asm/setup.h                              |   1 +
>  lib/ppc64/asm/spinlock.h                           |  11 ++
>  lib/ppc64/processor.c                              |   0
>  lib/ppc64/spinlock.c                               |  11 ++
>  lib/report.c                                       |  16 +++
>  lib/util.c                                         |  18 ++++
>  lib/util.h                                         |  23 ++++
>  powerpc/Makefile                                   |   1 +
>  powerpc/Makefile.common                            |  65 +++++++++++
>  powerpc/Makefile.ppc64                             |  21 ++++
>  powerpc/boot_rom.bin                               | Bin 0 -> 280 bytes
>  powerpc/cstart64.S                                 |  86 +++++++++++++++
>  powerpc/flat.lds                                   |  44 ++++++++
>  powerpc/reloc64.c                                  |  55 ++++++++++
>  powerpc/rom/.gitignore                             |   1 +
>  powerpc/rom/Makefile                               |  36 +++++++
>  powerpc/rom/header.img                             |   1 +
>  powerpc/rom/rom.ffs                                |   4 +
>  powerpc/rom/stage1.S                               |   5 +
>  powerpc/run                                        |  60 +++++++++++
>  powerpc/selftest.c                                 |  65 +++++++++++
>  powerpc/unittests.cfg                              |  30 ++++++
>  {config => scripts}/asm-offsets.mak                |   0
>  scripts/mkstandalone.sh                            |   5 +
>  x86/Makefile                                       |   1 +
>  .../config-x86-common.mak => x86/Makefile.common   |   0
>  config/config-i386.mak => x86/Makefile.i386        |   2 +-
>  config/config-x86_64.mak => x86/Makefile.x86_64    |   2 +-
>  52 files changed, 924 insertions(+), 50 deletions(-)
>  create mode 100644 arm/Makefile
>  rename config/config-arm.mak => arm/Makefile.arm (90%)
>  rename config/config-arm64.mak => arm/Makefile.arm64 (89%)
>  rename config/config-arm-common.mak => arm/Makefile.common (96%)
>  create mode 100644 lib/powerpc/.gitignore
>  create mode 100644 lib/powerpc/asm/rtas.h
>  create mode 100644 lib/powerpc/asm/setup.h
>  create mode 100644 lib/powerpc/io.c
>  create mode 100644 lib/powerpc/mmu.c
>  create mode 100644 lib/powerpc/rtas.c
>  create mode 100644 lib/powerpc/setup.c
>  create mode 100644 lib/powerpc/smp.c
>  create mode 100644 lib/ppc64/.gitignore
>  create mode 100644 lib/ppc64/asm-offsets.c
>  create mode 100644 lib/ppc64/asm/asm-offsets.h
>  create mode 100644 lib/ppc64/asm/io.h
>  create mode 100644 lib/ppc64/asm/page.h
>  create mode 100644 lib/ppc64/asm/rtas.h
>  create mode 100644 lib/ppc64/asm/setup.h
>  create mode 100644 lib/ppc64/asm/spinlock.h
>  create mode 100644 lib/ppc64/processor.c
>  create mode 100644 lib/ppc64/spinlock.c
>  create mode 100644 lib/util.c
>  create mode 100644 lib/util.h
>  create mode 100644 powerpc/Makefile
>  create mode 100644 powerpc/Makefile.common
>  create mode 100644 powerpc/Makefile.ppc64
>  create mode 100644 powerpc/boot_rom.bin
>  create mode 100644 powerpc/cstart64.S
>  create mode 100644 powerpc/flat.lds
>  create mode 100644 powerpc/reloc64.c
>  create mode 100644 powerpc/rom/.gitignore
>  create mode 100644 powerpc/rom/Makefile
>  create mode 100644 powerpc/rom/header.img
>  create mode 100644 powerpc/rom/rom.ffs
>  create mode 100644 powerpc/rom/stage1.S
>  create mode 100755 powerpc/run
>  create mode 100644 powerpc/selftest.c
>  create mode 100644 powerpc/unittests.cfg
>  rename {config => scripts}/asm-offsets.mak (100%)
>  create mode 100644 x86/Makefile
>  rename config/config-x86-common.mak => x86/Makefile.common (100%)
>  rename config/config-i386.mak => x86/Makefile.i386 (91%)
>  rename config/config-x86_64.mak => x86/Makefile.x86_64 (93%)
> 
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux