diff options
author | Christian Borntraeger <borntraeger@de.ibm.com> | 2013-06-12 13:54:53 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-06-17 17:05:07 +0200 |
commit | 69d0d3a3160690cf64ea3bf484ca1f9d7a1bf798 (patch) | |
tree | 29a585340a1f98b379852ede5935df2d1dcb33c8 /arch/s390/kvm/kvm-s390.h | |
parent | db70ccdfb9953b984f5b95d98c50d8da335bab59 (diff) | |
download | op-kernel-dev-69d0d3a3160690cf64ea3bf484ca1f9d7a1bf798.zip op-kernel-dev-69d0d3a3160690cf64ea3bf484ca1f9d7a1bf798.tar.gz |
KVM: s390: guest large pages
This patch enables kvm to give large pages to the guest. The heavy
lifting is done by the hardware, the host only has to take care
of the PFMF instruction, which is also part of EDAT-1.
We also support the non-quiescing key setting facility if the host
supports it, to behave similar to the interpretation of sske.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/s390/kvm/kvm-s390.h')
-rw-r--r-- | arch/s390/kvm/kvm-s390.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index 269b523..15795b8 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h @@ -86,6 +86,12 @@ static inline void kvm_s390_get_base_disp_sse(struct kvm_vcpu *vcpu, *address2 = (base2 ? vcpu->run->s.regs.gprs[base2] : 0) + disp2; } +static inline void kvm_s390_get_regs_rre(struct kvm_vcpu *vcpu, int *r1, int *r2) +{ + *r1 = (vcpu->arch.sie_block->ipb & 0x00f00000) >> 20; + *r2 = (vcpu->arch.sie_block->ipb & 0x000f0000) >> 16; +} + static inline u64 kvm_s390_get_base_disp_rsy(struct kvm_vcpu *vcpu) { u32 base2 = vcpu->arch.sie_block->ipb >> 28; |