KVM: s390: Support keyless subset guest mode
If the KSS facility is available on the machine, we also make it available for our KVM guests. The KSS facility bypasses storage key management as long as the guest does not issue a related instruction. When that happens, the control is returned to the host, which has to turn off KSS for a guest vcpu before retrying the instruction. Signed-off-by: Corey S. McQuay <csmcquay@linux.vnet.ibm.com> Signed-off-by: Farhan Ali <alifm@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:

committed by
Christian Borntraeger

parent
71cb1bf66e
commit
730cd632c4
@@ -117,6 +117,8 @@ static int prepare_cpuflags(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
|
||||
newflags |= cpuflags & CPUSTAT_SM;
|
||||
if (test_kvm_cpu_feat(vcpu->kvm, KVM_S390_VM_CPU_FEAT_IBS))
|
||||
newflags |= cpuflags & CPUSTAT_IBS;
|
||||
if (test_kvm_cpu_feat(vcpu->kvm, KVM_S390_VM_CPU_FEAT_KSS))
|
||||
newflags |= cpuflags & CPUSTAT_KSS;
|
||||
|
||||
atomic_set(&scb_s->cpuflags, newflags);
|
||||
return 0;
|
||||
@@ -289,7 +291,9 @@ static int shadow_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
|
||||
* bits. Therefore we cannot provide interpretation and would later
|
||||
* have to provide own emulation handlers.
|
||||
*/
|
||||
scb_s->ictl |= ICTL_ISKE | ICTL_SSKE | ICTL_RRBE;
|
||||
if (!(atomic_read(&scb_s->cpuflags) & CPUSTAT_KSS))
|
||||
scb_s->ictl |= ICTL_ISKE | ICTL_SSKE | ICTL_RRBE;
|
||||
|
||||
scb_s->icpua = scb_o->icpua;
|
||||
|
||||
if (!(atomic_read(&scb_s->cpuflags) & CPUSTAT_SM))
|
||||
|
Reference in New Issue
Block a user