[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 9/9] s390x/kvm: sync gbea and pp register
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PATCH 9/9] s390x/kvm: sync gbea and pp register |
Date: |
Mon, 14 Apr 2014 18:48:30 +0200 |
From: Christian Borntraeger <address@hidden>
We also need to sync guest breaking event address and program parameter
register for migration support.
Signed-off-by: Christian Borntraeger <address@hidden>
Reviewed-by: Jason J. Herne <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
target-s390x/cpu.h | 3 +++
target-s390x/kvm.c | 24 ++++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h
index 53391fd..55ef6d3 100644
--- a/target-s390x/cpu.h
+++ b/target-s390x/cpu.h
@@ -126,6 +126,9 @@ typedef struct CPUS390XState {
uint64_t pfault_compare;
uint64_t pfault_select;
+ uint64_t gbea;
+ uint64_t pp;
+
CPU_COMMON
/* reset does memset(0) up to here */
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index ec1ce2f..03d61d3 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -204,6 +204,18 @@ int kvm_arch_put_registers(CPUState *cs, int level)
}
}
+ reg.id = KVM_REG_S390_GBEA;
+ reg.addr = (__u64) &env->gbea;
+ if (kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®)) {
+ trace_kvm_failed_reg_set(reg.id, strerror(errno));
+ }
+
+ reg.id = KVM_REG_S390_PP;
+ reg.addr = (__u64) &env->pp;
+ if (kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®)) {
+ trace_kvm_failed_reg_set(reg.id, strerror(errno));
+ }
+
if (cap_sync_regs &&
cs->kvm_run->kvm_valid_regs & KVM_SYNC_ACRS &&
cs->kvm_run->kvm_valid_regs & KVM_SYNC_CRS) {
@@ -305,6 +317,18 @@ int kvm_arch_get_registers(CPUState *cs)
trace_kvm_failed_reg_get(reg.id, strerror(errno));
}
+ reg.id = KVM_REG_S390_GBEA;
+ reg.addr = (__u64) &env->gbea;
+ if (kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®)) {
+ trace_kvm_failed_reg_get(reg.id, strerror(errno));
+ }
+
+ reg.id = KVM_REG_S390_PP;
+ reg.addr = (__u64) &env->pp;
+ if (kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®)) {
+ trace_kvm_failed_reg_get(reg.id, strerror(errno));
+ }
+
if (cap_async_pf) {
reg.id = KVM_REG_S390_PFTOKEN;
reg.addr = (__u64)&(env->pfault_token);
--
1.7.9.5
- Re: [Qemu-devel] [PATCH 2/9] kvm: add kvm_enable_cap_{vm,vcpu}, (continued)
[Qemu-devel] [PATCH 6/9] s390x/virtio-ccw: Wire up irq routing and irqfds., Cornelia Huck, 2014/04/14
[Qemu-devel] [PATCH 3/9] s390x: use kvm_enable_cap_vcpu(), Cornelia Huck, 2014/04/14
[Qemu-devel] [PATCH 5/9] s390x/virtio-ccw: reference-counted indicators, Cornelia Huck, 2014/04/14
[Qemu-devel] [PATCH 7/9] s390x/css: Don't save orb in subchannel., Cornelia Huck, 2014/04/14
[Qemu-devel] [PATCH 9/9] s390x/kvm: sync gbea and pp register,
Cornelia Huck <=
[Qemu-devel] [PATCH 4/9] s390x: Add I/O adapter registration., Cornelia Huck, 2014/04/14