diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2014-09-30 10:57:30 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-10-10 10:37:47 +0200 |
commit | c9e659c9ee75d33ff11a8573cea738ad26bb6f86 (patch) | |
tree | 577ab7f30ee4184604550b227a05dddcc08342db /target-s390x/cpu.c | |
parent | eb24f7c6896e93047f2c58ffd3ba4f453e88280b (diff) |
s390x/kvm: propagate s390 cpu state to kvm
Let QEMU propagate the cpu state to kvm. If kvm doesn't yet support it, it is
silently ignored as kvm will still handle the cpu state itself in that case.
The state is not synced back, thus kvm won't have a chance to actively modify
the cpu state. To do so, control has to be given back to QEMU (which is already
done so in all relevant cases).
Setting of the cpu state can fail either because kvm doesn't support the
interface yet, or because the state is invalid/not supported. Failed attempts
will be traced
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
CC: Andreas Faerber <afaerber@suse.de>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'target-s390x/cpu.c')
-rw-r--r-- | target-s390x/cpu.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c index dc89eb30a2..9dbb0dfcdb 100644 --- a/target-s390x/cpu.c +++ b/target-s390x/cpu.c @@ -288,6 +288,9 @@ unsigned int s390_cpu_set_state(uint8_t cpu_state, S390CPU *cpu) cpu_state); exit(1); } + if (kvm_enabled() && cpu->env.cpu_state != cpu_state) { + kvm_s390_set_cpu_state(cpu, cpu_state); + } cpu->env.cpu_state = cpu_state; return s390_count_running_cpus(); |