On 11/29/19 3:33 PM, David Hildenbrand wrote: > On 29.11.19 15:33, Janosch Frank wrote: >> On 11/29/19 3:31 PM, David Hildenbrand wrote: >>> On 29.11.19 15:21, Janosch Frank wrote: >>>> The architecture states that we need to reset local IRQs for all CPU >>>> resets. Because the old reset interface did not support the normal CPU >>>> reset we never did that. >>>> >>>> Now that we have a new interface, let's properly clear out local IRQs >>>> and let this commit be a reminder. >>>> >>>> Signed-off-by: Janosch Frank >>>> --- >>>> arch/s390/kvm/kvm-s390.c | 25 ++++++++++++++++++++++++- >>>> include/uapi/linux/kvm.h | 7 +++++++ >>>> 2 files changed, 31 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c >>>> index d9e6bf3d54f0..2f74ff46b176 100644 >>>> --- a/arch/s390/kvm/kvm-s390.c >>>> +++ b/arch/s390/kvm/kvm-s390.c >>>> @@ -529,6 +529,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) >>>> case KVM_CAP_S390_CMMA_MIGRATION: >>>> case KVM_CAP_S390_AIS: >>>> case KVM_CAP_S390_AIS_MIGRATION: >>>> + case KVM_CAP_S390_VCPU_RESETS: >>>> r = 1; >>>> break; >>>> case KVM_CAP_S390_HPAGE_1M: >>>> @@ -3293,6 +3294,25 @@ static int kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu) >>>> return 0; >>>> } >>>> >>>> +static int kvm_arch_vcpu_ioctl_reset(struct kvm_vcpu *vcpu, unsigned long type) >>>> +{ >>>> + int rc = -EINVAL; >>>> + >>>> + switch (type) { >>>> + case KVM_S390_VCPU_RESET_NORMAL: >>>> + rc = 0; >>>> + kvm_clear_async_pf_completion_queue(vcpu); >>>> + kvm_s390_clear_local_irqs(vcpu); >>>> + break; >>>> + case KVM_S390_VCPU_RESET_INITIAL: >>>> + /* fallthrough */ >>>> + case KVM_S390_VCPU_RESET_CLEAR: >>>> + rc = kvm_arch_vcpu_ioctl_initial_reset(vcpu); >>> >>> As we now have two interfaces to achieve the same thing (initial reset), >>> I do wonder if we should simply introduce >>> >>> KVM_S390_NORMAL_RESET >>> KVM_S390_CLEAR_RESET >>> >>> instead ... >>> >>> Then you can do KVM_S390_NORMAL_RESET for the bugfix and >>> KVM_S390_CLEAR_RESET later for PV. >>> >>> Does anything speak against that? >> >> Apart from loosing one more ioctl number probably not > > Do we care? (I think not, but maybe I am missing something :) ) > I don't, maybe somebody else does Btw. I'm struggling to find a good name for the capability: KVM_CAP_S390_VCPU_ADDITIONAL_RESETS ?