Quoting Pierre Morel (2022-06-20 14:54:36) [...] > diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h > index 766028d54a3e..bb54196d4ed6 100644 > --- a/arch/s390/include/asm/kvm_host.h > +++ b/arch/s390/include/asm/kvm_host.h [...] > @@ -3403,6 +3426,8 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) > rc = kvm_s390_vcpu_setup(vcpu); > if (rc) > goto out_ucontrol_uninit; > + > + kvm_s390_sca_set_mtcr(vcpu->kvm); We set the MTCR in the vcpu create. Does it also make sense to set it in kvm_arch_vcpu_destroy? [...] > diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c > index 12c464c7cddf..77a692238585 100644 > --- a/arch/s390/kvm/priv.c > +++ b/arch/s390/kvm/priv.c > @@ -873,10 +873,13 @@ static int handle_stsi(struct kvm_vcpu *vcpu) [...] > + case 15: > + trace_kvm_s390_handle_stsi(vcpu, fc, sel1, sel2, operand2); > + insert_stsi_usr_data(vcpu, operand2, ar, fc, sel1, sel2); > + return -EREMOTE; Maybe the API documentation should clearly note that once you turn on KVM_CAP_S390_CPU_TOPOLOGY, you will get exits to userspace for STSI 15.x.y, regardless of whether KVM_CAP_S390_USER_STSI is on or off. Other than that, looks good, hence: Reviewed-by: Nico Boehr <nrb@xxxxxxxxxxxxx>