diff options
author | Eugene (jno) Dvurechenski <jno@linux.vnet.ibm.com> | 2012-12-05 15:50:07 +0100 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2013-08-30 14:16:48 +0200 |
commit | 7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b (patch) | |
tree | 3134edaa7e64cf853b2ab83e41c82a8f18dc5eca /cpus.c | |
parent | f077847572708bbb3dd22bbc91ac6a277046e827 (diff) | |
download | hqemu-7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b.zip hqemu-7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b.tar.gz |
s390: wire up nmi command to raise a RESTART interrupt on S390
There is the 'nmi' command that is used to trigger a guest dump via kdump feature on x86.
s390 uses RESTART interrupt to trigger kdump.
So, this patch provides a mean to use 'nmi' command on s390 to raise RESTART interrupt.
The CPU to receive the RESTART interrupt is the "default" one.
There is an infrastructure to select the "default" CPU using 'cpu' command.
The 'info cpus' command can be used to see which one is the "default".
In order to wire up the RESTART to 'nmi' command we had to:
1. implement the kvm_s390_cpu_restart function by exporting the existing code
2. implement s390_cpu_restart function as kvm-aware wrapper
3. modify the qmp_inject_nmi function to enable (for s390) the scan for
"default" CPU and call s390_cpu_restart for it;
3. fix some messages.
Signed-off-by: Eugene (jno) Dvurechenski <jno@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'cpus.c')
-rw-r--r-- | cpus.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -1401,6 +1401,20 @@ void qmp_inject_nmi(Error **errp) apic_deliver_nmi(env->apic_state); } } +#elif defined(TARGET_S390X) + CPUState *cs; + S390CPU *cpu; + + for (cs = first_cpu; cs != NULL; cs = cs->next_cpu) { + cpu = S390_CPU(cs); + if (cpu->env.cpu_num == monitor_get_cpu_index()) { + if (s390_cpu_restart(S390_CPU(cs)) == -1) { + error_set(errp, QERR_UNSUPPORTED); + return; + } + break; + } + } #else error_set(errp, QERR_UNSUPPORTED); #endif |