On 17/05/2019 11:45, Jan Beulich wrote: > The cleanup IPI may get sent immediately before a CPU gets removed from > the online map. In such a case the IPI would get handled on the CPU > being offlined no earlier than in the interrupts disabled window after > fixup_irqs()' main loop. This is too late, however, because a possible > affinity change may incur the need for vector assignment, which will > fail when the IRQ's move cleanup count is still non-zero. > > To fix this > - record the set of CPUs the cleanup IPIs gets actually sent to alongside > setting their count, > - adjust the count in fixup_irqs(), accounting for all CPUs that the > cleanup IPI was sent to, but that are no longer online, > - bail early from the cleanup IPI handler when the CPU is no longer > online, to prevent double accounting. > > Signed-off-by: Jan Beulich <[email protected]> > Reviewed-by: Roger Pau Monné <[email protected]>
Acked-by: Andrew Cooper <[email protected]> _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
