[Qemu-devel] [PATCH v2 for-2.12 00/10] s390x/tcg: facilitites and instructions

David Hildenbrand posted 10 patches 6 years, 4 months ago
hw/s390x/s390-virtio-ccw.c  |   8 ++++
target/s390x/cpu.h          |   3 ++
target/s390x/cpu_models.c   |  97 +++++++++++++++++----------------------
target/s390x/cpu_models.h   |   1 +
target/s390x/gen-features.c |  87 +++++++++++++++++++++++++++++++++++
target/s390x/helper.h       |   2 +
target/s390x/insn-data.def  |  26 +++++++----
target/s390x/misc_helper.c  |  18 ++++++++
target/s390x/translate.c    | 109 ++++++++++++++++++++++++++++++++++++++++++++
9 files changed, 285 insertions(+), 66 deletions(-)
[Qemu-devel] [PATCH v2 for-2.12 00/10] s390x/tcg: facilitites and instructions
Posted by David Hildenbrand 6 years, 4 months ago
Wire up some io instructions and implement new facilitites. Make sure
to take care of MTTCG when it comes to atomic operations.

As we are now able to install/boot a Fedora 26/27 as well as an upstream
kernel compiled for z12, let's bump up the QEMU cpu model to a very
stripped down version of a z12 (with missing base features). Take care
of backwards compatibility (as we defined the QEMU model as
migration-safe).

Try it yourself: https://github.com/davidhildenbrand/qemu.git s390x-queue

This branch is based on https://github.com/cohuck/qemu.git s390x-next
and contains other patches sent previously, especially
- s390x/tcg: CCW hotplug support
- cpus: make pause_all_cpus() play with SMP on single threaded TCG
- cpu-exec: fix missed CPU kick during interrupt injection

$ baseurl=https://ftp-stud.hs-esslingen.de/pub/fedora-secondary/releases/27/Server/s390x/os/
$ wget ${baseurl}/images/kernel.img
$ wget ${baseurl}/images/initrd.img
$ qemu-img create -f qcow2 guest-tcg.qcow2 8G
$ qemu-system-s390x \
    -nographic -machine s390-ccw-virtio -m 2048 \
    --accel tcg,thread=multi -smp 4,maxcpus=4 \
    -hda guest-tcg.qcow2 \
    -kernel kernel.img \
    -initrd initrd.img \
    --append "TERM=linux inst.repo=${baseurl}/ ip=dhcp inst.geoloc=0"

I was also able to install and boot Ubuntu 17.10. Enabling channel
measurements now also works.

v1 -> v2:
- rephrased/fixed some patch descriptions

David Hildenbrand (10):
  s390x/tcg: ASI/ASGI are atomic with interlocked-acccess facility 1
  s390x/tcg: ALSI/ALSGI are atomic with interlocked-acccess facility 1
  s390x/tcg: implement Interlocked-Access Facility 2
  s390x/tcg: wire up SET ADDRESS LIMIT
  s390x/tcg: wire up SET CHANNEL MONITOR
  s390x/tcg: Implement STORE CHANNEL PATH STATUS
  s390x/tcg: Implement SIGNAL ADAPTER instruction
  s390x/tcg: implement extract-CPU-time facility
  s390x/tcg: we already implement the Set-Program-Parameter facility
  s390x: change the QEMU cpu model to a stripped down z12

 hw/s390x/s390-virtio-ccw.c  |   8 ++++
 target/s390x/cpu.h          |   3 ++
 target/s390x/cpu_models.c   |  97 +++++++++++++++++----------------------
 target/s390x/cpu_models.h   |   1 +
 target/s390x/gen-features.c |  87 +++++++++++++++++++++++++++++++++++
 target/s390x/helper.h       |   2 +
 target/s390x/insn-data.def  |  26 +++++++----
 target/s390x/misc_helper.c  |  18 ++++++++
 target/s390x/translate.c    | 109 ++++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 285 insertions(+), 66 deletions(-)

-- 
2.14.3