On Tue, Jun 11, 2024 at 11:59:39AM +0200, Jan Beulich wrote: > On 10.06.2024 16:20, Roger Pau Monne wrote: > > The current check used in fixup_irqs() to decide whether to move around > > interrupts is based on the affinity mask, but such mask can have all bits > > set, > > and hence is unlikely to be a subset of the input mask. For example if an > > interrupt has an affinity mask of all 1s, any input to fixup_irqs() that's > > not > > an all set CPU mask would cause that interrupt to be shuffled around > > unconditionally. > > > > What fixup_irqs() care about is evacuating interrupts from CPUs not set on > > the > > input CPU mask, and for that purpose it should check whether the interrupt > > is > > assigned to a CPU not present in the input mask. Assume that > > ->arch.cpu_mask > > is a subset of the ->affinity mask, and keep the current logic that resets > > the > > ->affinity mask if the interrupt has to be shuffled around. > > > > Doing the affinity movement based on ->arch.cpu_mask requires removing the > > special handling to ->arch.cpu_mask done for high priority vectors, > > otherwise > > the adjustment done to cpu_mask makes them always skip the CPU interrupt > > movement. > > > > While there also adjust the comment as to the purpose of fixup_irqs(). > > > > Signed-off-by: Roger Pau Monné <roger....@citrix.com> > > Reviewed-by: Jan Beulich <jbeul...@suse.com> > > Aiui this is independent of patch 1, so could go in while we still settle on > how to word things there?
I think so, the issue patch 1 fixes is independent from the rest of the series. Thanks, Roger.