Messages in this thread | | | Subject | Re: [PATCH v5 12/15] KVM: s390: do not restore IAM immediately before SIE entry | From | Michael Mueller <> | Date | Mon, 7 Jan 2019 18:53:23 +0100 |
| |
On 03.01.19 16:00, Pierre Morel wrote: > On 19/12/2018 20:17, Michael Mueller wrote: >> The IAM shall no be restored when deliverable interruptions are >> delivered to vcpus by means of the PSW swap mechanism. That would >> trigger the GIB alert millicode although we know that SIE will be >> able to handle the pending interruption on entry. >> >> Signed-off-by: Michael Mueller <mimu@linux.ibm.com> >> --- >> arch/s390/kvm/interrupt.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c >> index 8307717e3caf..48a93f5e5333 100644 >> --- a/arch/s390/kvm/interrupt.c >> +++ b/arch/s390/kvm/interrupt.c >> @@ -328,11 +328,11 @@ static unsigned long disable_iscs(struct >> kvm_vcpu *vcpu, >> return active_mask; >> } >> -static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu) >> +static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu, u16 >> irq_flags) >> { >> unsigned long active_mask; >> - active_mask = pending_irqs(vcpu, IRQ_MASK_ALL); >> + active_mask = pending_irqs(vcpu, irq_flags); >> if (!active_mask) >> return 0; >> @@ -1090,7 +1090,7 @@ int kvm_s390_ext_call_pending(struct kvm_vcpu >> *vcpu) >> int kvm_s390_vcpu_has_irq(struct kvm_vcpu *vcpu, int exclude_stop) >> { >> - if (deliverable_irqs(vcpu)) >> + if (deliverable_irqs(vcpu, IRQ_MASK_ALL | IRQ_FLAG_IAM)) > > Why do we need to restore IAM here?
please see kvm_s390_handle_wait()
It calls kvm_arch_vcpu_runnable() / kvm_s390_vcpu_has_irq()
That's the place where we want the IAM to be restored when no ISC is pending in the IPM anymore.
> > >
| |