qemu/target/s390x
David Hildenbrand 799478621e s390x/tcg: STSI overhaul
Current STSI implementation is a mess, so let's rewrite it.

Problems fixed by this patch:
1) The order of exceptions/when recognized is wrong.
2) We have to store to virtual address space, not absolute.
3) Alignment check of the block is missing.
3) The SMP information is not indicated.

While at it:
a) Make the code look nicer
    - get rid of nesting levels
    - use struct initialization instead of initializing to zero
    - rename a misspelled field and rename function code defines
    - use a union and have only one write statement
    - use cpu_to_beX()
b) Indicate the VM name/extended name + UUID just like KVM does
c) Indicate that all LPAR CPUs we fake are dedicated
d) Add a comment why we fake being a KVM guest
e) Give our guest as default the name "TCGguest"
f) Fake the same CPU information we have in our Guest for all layers

While at it, get rid of "potential_page_fault()" by forwarding the
retaddr properly.

The result is best verified by looking at "/proc/sysinfo" in the guest
when specifying on the qemu command line
    -uuid "74738ff5-5367-5958-9aee-98fffdcd1876" \
    -name "extra long guest name"

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180129125623.21729-14-david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-02-09 09:37:13 +01:00
..
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cc_helper.c s390x/tcg: use s390_program_interrupt() in SACF 2017-12-14 17:56:54 +01:00
cpu_features_def.h s390x/kvm: provide stfle.81 2018-01-22 11:22:43 +01:00
cpu_features.c s390x/kvm: provide stfle.81 2018-01-22 11:22:43 +01:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_models.c s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu_models.h s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu-qom.h target/s390x: change CPU type name to "s390x-cpu" 2017-10-30 08:56:28 +01:00
cpu.c s390x/flic: make floating interrupts on TCG actually floating 2018-02-09 09:37:13 +01:00
cpu.h s390x/tcg: STSI overhaul 2018-02-09 09:37:13 +01:00
crypto_helper.c s390x/tcg: introduce and use s390_program_interrupt() 2017-12-14 17:56:54 +01:00
diag.c s390x/diag: pass the retaddr into handle_diag_308() 2017-12-14 17:56:54 +01:00
excp_helper.c s390x/flic: make floating interrupts on TCG actually floating 2018-02-09 09:37:13 +01:00
fpu_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c s390x/kvm: provide stfle.81 2018-01-22 11:22:43 +01:00
helper.c target/s390x: nuke DPRINTF in helper.c 2017-12-14 17:56:54 +01:00
helper.h s390x/tcg: implement TEST PENDING INTERRUPTION 2018-02-09 09:37:13 +01:00
insn-data.def s390x/tcg: implement TEST PENDING INTERRUPTION 2018-02-09 09:37:13 +01:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
internal.h s390x/flic: optimize CPU wakeup for TCG 2018-02-09 09:37:13 +01:00
interrupt.c s390x/flic: make floating interrupts on TCG actually floating 2018-02-09 09:37:13 +01:00
ioinst.c s390x: handle exceptions during s390_cpu_virt_mem_rw() correctly (TCG) 2017-12-14 17:56:54 +01:00
kvm_s390x.h s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm-stub.c s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm.c s390x: fix size + content of STSI blocks 2018-02-09 09:37:13 +01:00
machine.c s390x/kvm: Handle bpb feature 2018-01-22 11:22:30 +01:00
Makefile.objs s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
mem_helper.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
misc_helper.c s390x/tcg: STSI overhaul 2018-02-09 09:37:13 +01:00
mmu_helper.c s390x/tcg: don't exit the cpu loop in s390_cpu_virt_mem_rw() 2017-12-14 17:56:54 +01:00
sigp.c target/s390x: special handling when starting a CPU with WAIT PSW 2017-10-20 13:32:10 +02:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c s390x/tcg: implement TEST PENDING INTERRUPTION 2018-02-09 09:37:13 +01:00