mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
KVM: s390: trace and count all skey intercepts
Let's trace and count all skey handling operations, even if lazy skey handling was already activated. Also, don't enable lazy skey handling if anything went wrong while enabling skey handling for the SIE. Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
2386145152
commit
11ddcd41bc
2 changed files with 9 additions and 6 deletions
|
@ -152,24 +152,27 @@ static int handle_store_cpu_address(struct kvm_vcpu *vcpu)
|
|||
static int __skey_check_enable(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
trace_kvm_s390_skey_related_inst(vcpu);
|
||||
if (!(vcpu->arch.sie_block->ictl & (ICTL_ISKE | ICTL_SSKE | ICTL_RRBE)))
|
||||
return rc;
|
||||
|
||||
rc = s390_enable_skey();
|
||||
VCPU_EVENT(vcpu, 3, "%s", "enabling storage keys for guest");
|
||||
trace_kvm_s390_skey_related_inst(vcpu);
|
||||
vcpu->arch.sie_block->ictl &= ~(ICTL_ISKE | ICTL_SSKE | ICTL_RRBE);
|
||||
VCPU_EVENT(vcpu, 3, "enabling storage keys for guest: %d", rc);
|
||||
if (!rc)
|
||||
vcpu->arch.sie_block->ictl &= ~(ICTL_ISKE | ICTL_SSKE | ICTL_RRBE);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
static int handle_skey(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
int rc = __skey_check_enable(vcpu);
|
||||
int rc;
|
||||
|
||||
vcpu->stat.instruction_storage_key++;
|
||||
rc = __skey_check_enable(vcpu);
|
||||
if (rc)
|
||||
return rc;
|
||||
vcpu->stat.instruction_storage_key++;
|
||||
|
||||
if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
|
||||
return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP);
|
||||
|
|
|
@ -41,7 +41,7 @@ TRACE_EVENT(kvm_s390_skey_related_inst,
|
|||
TP_fast_assign(
|
||||
VCPU_ASSIGN_COMMON
|
||||
),
|
||||
VCPU_TP_PRINTK("%s", "first instruction related to skeys on vcpu")
|
||||
VCPU_TP_PRINTK("%s", "storage key related instruction")
|
||||
);
|
||||
|
||||
TRACE_EVENT(kvm_s390_major_guest_pfault,
|
||||
|
|
Loading…
Reference in a new issue