qemu/target-s390x
David Hildenbrand 18ff949474 s390x/kvm: implement handling of new SIGP orders
This patch adds handling code for the following SIGP orders:
- SIGP SET ARCHITECTURE
- SIGP SET PREFIX
- SIGP STOP
- SIGP STOP AND STORE STATUS
- SIGP STORE STATUS AT ADDRESS

SIGP STOP (AND STORE STATUS) are the only orders that can stay pending forever
(and may only be interrupted by resets), so special care has to be taken about
them. Their status also has to be tracked within QEMU. This patch takes
care of migrating this status (e.g. if migration happens during a SIGP STOP).

Due to the BQL, only one VCPU is currently able to execute SIGP handlers at a
time. According to the PoP, BUSY should be returned if another SIGP order is
currently being executed on a VCPU. This can only be implemented when the BQL
does not protect all handlers. For now, all SIGP orders on all VCPUs will be
serialized, which will be okay for the first shot.

Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Message-Id: <1424783731-43426-7-git-send-email-jfrei@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2015-03-10 09:26:22 +01:00
..
arch_dump.c target-s390x: Add missing 'static' and 'const' attributes 2014-03-27 19:22:48 +04:00
cc_helper.c target-s390x: fix and optimize slb* and slbg* computation of carry/borrow flag 2015-02-03 12:27:05 -08:00
cpu-qom.h s390x/migration: migrate CPU state 2014-10-10 13:31:51 +02:00
cpu.c s390x/kvm: implement handling of new SIGP orders 2015-03-10 09:26:22 +01:00
cpu.h s390x/kvm: implement handling of new SIGP orders 2015-03-10 09:26:22 +01:00
fpu_helper.c softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
gdbstub.c s390x/gdb: coding style fixes 2014-09-01 09:45:19 +02:00
helper.c s390x/helper: Remove s390_cpu_physical_memory_map 2015-02-18 09:37:15 +01:00
helper.h target-s390: Implement LURA, LURAG, STURG 2015-02-03 12:06:37 -08:00
insn-data.def target-s390: Implement ECAG 2015-02-03 12:06:37 -08:00
insn-format.def target-s390: Add format based disassassmbly infrastructure 2013-01-05 12:00:27 -08:00
int_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
interrupt.c s390x: Fix sclp console input 2014-11-05 12:01:28 +01:00
ioinst.c s390x/ioinst: Rework memory access in TPI instruction 2015-02-18 09:37:15 +01:00
ioinst.h s390x/ioinst: Rework memory access in TPI instruction 2015-02-18 09:37:15 +01:00
kvm.c s390x/kvm: implement handling of new SIGP orders 2015-03-10 09:26:22 +01:00
machine.c s390x/kvm: implement handling of new SIGP orders 2015-03-10 09:26:22 +01:00
Makefile.objs s390x/mmu: Move mmu_translate() and friends to separate file 2015-02-18 09:36:38 +01:00
mem_helper.c s390x/mmu: Skip exceptions properly when translating addresses for debug 2015-02-18 09:37:14 +01:00
misc_helper.c s390x: introduce defines for SIGP condition codes 2015-03-10 09:26:22 +01:00
mmu_helper.c s390x/mmu: Add function for accessing guest memory 2015-02-18 09:37:15 +01:00
translate.c tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00