diff options
author | Dominik Dingel <dingel@linux.vnet.ibm.com> | 2013-10-07 17:11:48 +0200 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2014-01-30 13:11:02 +0100 |
commit | 3c038e6be0e299d4d3762d0a9a29f02de6e04991 (patch) | |
tree | 06f0c3a8debccb32b2388d57990aba5f4e363ea3 /arch/s390/kvm/sigp.c | |
parent | 9f2ceda49c6b8827c795731c204f6c2587886e2c (diff) | |
download | linux-3c038e6be0e299d4d3762d0a9a29f02de6e04991.tar.gz linux-3c038e6be0e299d4d3762d0a9a29f02de6e04991.tar.bz2 linux-3c038e6be0e299d4d3762d0a9a29f02de6e04991.zip |
KVM: async_pf: Async page fault support on s390
This patch enables async page faults for s390 kvm guests.
It provides the userspace API to enable and disable_wait this feature.
The disable_wait will enforce that the feature is off by waiting on it.
Also it includes the diagnose code, called by the guest to enable async page faults.
The async page faults will use an already existing guest interface for this
purpose, as described in "CP Programming Services (SC24-6084)".
Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm/sigp.c')
-rw-r--r-- | arch/s390/kvm/sigp.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c index 87c2b3a3bd3e..fe9442d39f0e 100644 --- a/arch/s390/kvm/sigp.c +++ b/arch/s390/kvm/sigp.c @@ -224,6 +224,8 @@ unlock: static int __sigp_set_arch(struct kvm_vcpu *vcpu, u32 parameter) { int rc; + unsigned int i; + struct kvm_vcpu *v; switch (parameter & 0xff) { case 0: @@ -231,6 +233,11 @@ static int __sigp_set_arch(struct kvm_vcpu *vcpu, u32 parameter) break; case 1: case 2: + kvm_for_each_vcpu(i, v, vcpu->kvm) { + v->arch.pfault_token = KVM_S390_PFAULT_TOKEN_INVALID; + kvm_clear_async_pf_completion_queue(v); + } + rc = SIGP_CC_ORDER_CODE_ACCEPTED; break; default: |