[PATCH kvm-unit-tests v2 00/11] s390x: vmalloc support

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

 



This series implements
- detection of installed physical memory
- setup of the physical allocator
- setup of the MMU / page tables / DAT
- setup of the virtual allocator

The CPU now runs with DAT enabled. I added a small test to make sure
malloc() indeed works and uses virtual adresses.

While at it, fix the TEST BLOCK test on newer compilers.

Tested with upsteam QEMU TCG and KVM. However, to pass under TCG a
couple of fixes are necessary (e.g. disabling DAT does not work). Will
post them shortly.

v1 -> v2:
- "s390x: use highest addresses for PGM_ADDRESSING errors"
 - UL -> L
- "s390x: set initital stack pointer to stackptr, not stacktop"
 - added
- "s390x: add missing sclp definitions from QEMU"
 - fix copyright statement
- "s390x: rename sclp_setup() to sclp_ascii_setup()"
 - also expose the buffer
- "s390x: detect installed memory"
 - use tprot correctly (we have to test for exceptions, too)
 - fix tprot address in asm (r vs Q)
- "s390x: initialize the physical allocator"
 - move freemem_start into mem_init()
 - get rid of the "+ PAGE_SIZE" hack
- "s390x: add vmalloc support"
 - not adding always_inline, as functions in headers are always inlined
   (and always_inline will not compile)
 - configure_dat():
  - move to mmu.c
  - use labels 0/1 and reference by 0f/1f, otherwise we might have duplicate
    labels and the compiler complains when inlining
  - use two local variables, fix store
 - don't enable DAT in PGM interrupt as default
- "s390x: enable DAT in PGM interrupt handler"
 - added
- "s390x: add test for (v)malloc"
 - use a mb() and read values to check validity
 - test only for the highest bits
 - disable DAT to test if we actually have a virtual address
- "s390x: add sieve test"
 - copied it (unfortunately no copyright statement?)
 - minor styl corrections + temporarily disable DAT


David Hildenbrand (11):
  s390x: fix TEST BLOCK tests
  s390x: use highest addresses for PGM_ADDRESSING errors
  s390x: set initital stack pointer to stackptr, not stacktop
  s390x: add missing sclp definitions from QEMU
  s390x: rename sclp_setup() to sclp_ascii_setup()
  s390x: detect installed memory
  s390x: initialize the physical allocator
  s390x: add vmalloc support
  s390x: enable DAT in PGM interrupt handler
  s390x: add test for (v)malloc
  s390x: add sieve test

 lib/s390x/asm/arch_def.h  |  31 +++++++
 lib/s390x/asm/interrupt.h |   1 +
 lib/s390x/asm/page.h      |  24 +++++
 lib/s390x/asm/pgtable.h   | 224 ++++++++++++++++++++++++++++++++++++++++++++++
 lib/s390x/interrupt.c     |  11 +++
 lib/s390x/io.c            |   3 +-
 lib/s390x/mmu.c           | 125 ++++++++++++++++++++++++++
 lib/s390x/sclp-ascii.c    |   6 +-
 lib/s390x/sclp.c          |  72 +++++++++++++++
 lib/s390x/sclp.h          | 112 ++++++++++++++++++++++-
 s390x/Makefile            |   7 ++
 s390x/cstart64.S          |   2 +-
 s390x/intercept.c         |  14 +--
 s390x/selftest.c          |  31 ++++++-
 s390x/sieve.c             |  59 ++++++++++++
 s390x/unittests.cfg       |   6 ++
 16 files changed, 713 insertions(+), 15 deletions(-)
 create mode 100644 lib/s390x/asm/pgtable.h
 create mode 100644 lib/s390x/mmu.c
 create mode 100644 lib/s390x/sclp.c
 create mode 100644 s390x/sieve.c

-- 
2.14.3




[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