genirq/affinity: Consider that CPUs on nodes can be unbalanced
authorRei Yamamoto <yamamoto.rei@jp.fujitsu.com>
Thu, 31 Mar 2022 00:33:09 +0000 (09:33 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Apr 2022 07:23:29 +0000 (09:23 +0200)
commit0275c75955d1cdec07bc6d4f6551dbf253c2aaeb
tree8fcc9c99e718cb985d16d1dbfa035167bf859744
parent1fcfe37d170ad81d8a5432f49e76c2b2b2918274
genirq/affinity: Consider that CPUs on nodes can be unbalanced

commit 08d835dff916bfe8f45acc7b92c7af6c4081c8a7 upstream.

If CPUs on a node are offline at boot time, the number of nodes is
different when building affinity masks for present cpus and when building
affinity masks for possible cpus. This causes the following problem:

In the case that the number of vectors is less than the number of nodes
there are cases where bits of masks for present cpus are overwritten when
building masks for possible cpus.

Fix this by excluding CPUs, which are not part of the current build mask
(present/possible).

[ tglx: Massaged changelog and added comment ]

Fixes: b82592199032 ("genirq/affinity: Spread IRQs to all available NUMA nodes")
Signed-off-by: Rei Yamamoto <yamamoto.rei@jp.fujitsu.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220331003309.10891-1-yamamoto.rei@jp.fujitsu.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/irq/affinity.c