qemu/target/s390x
David Hildenbrand 20d143e2ca s390x/tcg: Implement MONITOR CALL
Recent upstream Linux uses the MONITOR CALL instruction for things like
BUG_ON() and WARN_ON(). We currently inject an operation exception when
we hit a MONITOR CALL instruction - which is wrong, as the instruction
is not glued to specific CPU features.

Doing a simple WARN_ON_ONCE() currently results in a panic:
  [   18.162801] illegal operation: 0001 ilc:2 [#1] SMP
  [   18.162889] Modules linked in:
  [...]
  [   18.165476] Kernel panic - not syncing: Fatal exception: panic_on_oops

With a proper implementation, we now get:
  [   18.242754] ------------[ cut here ]------------
  [   18.242855] WARNING: CPU: 7 PID: 1 at init/main.c:1534 [...]
  [   18.242919] Modules linked in:
  [...]
  [   18.246262] ---[ end trace a420477d71dc97b4 ]---
  [   18.259014] Freeing unused kernel memory: 4220K

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200918085122.26132-1-david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2020-10-02 13:52:49 +02:00
..
arch_dump.c
cc_helper.c
cpu_features_def.h meson: rename .inc.h files to .h.inc 2020-08-21 06:18:35 -04:00
cpu_features_def.h.inc s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
cpu_features.c meson: rename .inc.h files to .h.inc 2020-08-21 06:18:35 -04:00
cpu_features.h s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
cpu_models.c s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
cpu_models.h meson: convert target/s390x/gen-features.h 2020-08-21 06:30:17 -04:00
cpu-param.h
cpu-qom.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
cpu.c s390x: Register all CPU properties as class properties 2020-09-22 16:48:06 -04:00
cpu.h s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
crypto_helper.c
diag.c s390x: protvirt: Move diag 308 data over SIDA 2020-04-29 14:31:32 +02:00
excp_helper.c s390x/tcg: Implement MONITOR CALL 2020-10-02 13:52:49 +02:00
fpu_helper.c softfloat: Name compare relation enum 2020-05-19 08:41:45 -07:00
gdbstub.c gdbstub: extend GByteArray to read register helpers 2020-03-17 17:38:38 +00:00
gen-features.c s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
helper.c target/s390x/helper: Clean ifdef'ry 2020-06-05 17:13:11 +02:00
helper.h s390x/tcg: Implement MONITOR CALL 2020-10-02 13:52:49 +02:00
insn-data.def s390x/tcg: Implement MONITOR CALL 2020-10-02 13:52:49 +02:00
insn-format.def
int_helper.c
internal.h s390x: Register all CPU properties as class properties 2020-09-22 16:48:06 -04:00
interrupt.c
ioinst.c vfio-ccw: Add support for the schib region 2020-06-18 12:13:54 +02:00
kvm_s390x.h s390x: Add SIDA memory ops 2020-04-29 14:31:31 +02:00
kvm-stub.c s390x: protvirt: Support unpack facility 2020-04-29 14:30:54 +02:00
kvm.c s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
machine.c s390: guest support for diagnose 0x318 2020-10-02 13:52:49 +02:00
mem_helper.c qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
meson.build target/s390x: fix meson.build issue 2020-08-21 11:55:13 -04:00
misc_helper.c
mmu_helper.c s390x: Add SIDA memory ops 2020-04-29 14:31:31 +02:00
s390-tod.h
sigp.c
tcg_s390x.h
tcg-stub.c
trace-events
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
translate_vx.c.inc meson: rename included C source files to .c.inc 2020-08-21 06:18:30 -04:00
translate.c s390x/tcg: Implement MONITOR CALL 2020-10-02 13:52:49 +02:00
vec_fpu_helper.c softfloat: Inline float64 compare specializations 2020-05-19 08:42:45 -07:00
vec_helper.c
vec_int_helper.c target/s390x: Use tcg_gen_gvec_rotl{i,s,v} 2020-06-02 08:42:37 -07:00
vec_string_helper.c
vec.h