On 05.12.18 11:19, Halil Pasic wrote:
+ */
+ kvm = container_of(gisa, struct sie_page2, gisa)->kvm;
+ vcpu = __find_vcpu_for_floating_irq(kvm);
+ if (vcpu)
+ kvm_s390_vcpu_wakeup(vcpu);
I don't quite understand the logic here. You seem to wake up the first
idle vcpu, or the next round-robin vcpu (I guess the rr one is actually
in SIE). What I would expect is making an attempt at delivering all irqs
in the IPM. Since vcpus can mask ISCs a scenario can be constructed where
more than one vcpu shuld be woken up.
Or am I misunderstanding something?
I did not see that initially.
Also here I'm working on a slight change as you know already.
Regards,
Halil
+ }
+ } while (!final);
+}