[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20260128031406.9473-3-zhanxusheng@xiaomi.com>
Date: Wed, 28 Jan 2026 11:14:06 +0800
From: Zhan Xusheng <zhanxusheng1024@...il.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: linux-kernel@...r.kernel.org,
linux-irq@...r.kernel.org,
Zhan Xusheng <zhanxusheng@...omi.com>
Subject: [PATCH v3 2/2] genirq/matrix: Avoid implicit tie-breaking by CPU iteration order
matrix_find_best_cpu_managed() updates best_cpu even when two CPUs
have the same managed_allocated count. As a result, the final
selection implicitly depends on CPU iteration order.
Update the comparison to replace the current best CPU only when a
CPU has a strictly smaller managed_allocated value. This removes
the iteration-order-based tie-breaking for equal cases.
This patch intentionally changes the selection behavior.
Signed-off-by: Zhan Xusheng <zhanxusheng@...omi.com>
---
kernel/irq/matrix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/irq/matrix.c b/kernel/irq/matrix.c
index c363e918087c..ed4b1e44dc1e 100644
--- a/kernel/irq/matrix.c
+++ b/kernel/irq/matrix.c
@@ -171,7 +171,7 @@ static unsigned int matrix_find_best_cpu_managed(struct irq_matrix *m,
if (!cm->online)
continue;
- if (cm->managed_allocated <= allocated) {
+ if (cm->managed_allocated < allocated) {
best_cpu = cpu;
allocated = cm->managed_allocated;
}
--
2.43.0
Powered by blists - more mailing lists