[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH for-4.19 v4] x86/irq: forward pending interrupts to new destination in fixup_irqs()
On Wed, 2024-06-19 at 13:53 +0200, Jan Beulich wrote: > On 19.06.2024 11:58, Roger Pau Monne wrote: > > fixup_irqs() is used to evacuate interrupts from to be offlined > > CPUs. Given > > the CPU is to become offline, the normal migration logic used by > > Xen where the > > vector in the previous target(s) is left configured until the > > interrupt is > > received on the new destination is not suitable. > > > > Instead attempt to do as much as possible in order to prevent > > loosing > > interrupts. If fixup_irqs() is called from the CPU to be offlined > > (as is > > currently the case for CPU hot unplug) attempt to forward pending > > vectors when > > interrupts that target the current CPU are migrated to a different > > destination. > > > > Additionally, for interrupts that have already been moved from the > > current CPU > > prior to the call to fixup_irqs() but that haven't been delivered > > to the new > > destination (iow: interrupts with move_in_progress set and the > > current CPU set > > in ->arch.old_cpu_mask) also check whether the previous vector is > > pending and > > forward it to the new destination. > > > > This allows us to remove the window with interrupts enabled at the > > bottom of > > fixup_irqs(). Such window wasn't safe anyway: references to the > > CPU to become > > offline are removed from interrupts masks, but the per-CPU > > vector_irq[] array > > is not updated to reflect those changes (as the CPU is going > > offline anyway). > > > > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> ~ Oleksii
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |