Browse Source

Consider IRQs with multi-affinity as new ones

Serj Kalichev 9 years ago
parent
commit
5f76cb3a96
1 changed files with 6 additions and 0 deletions
  1. 6 0
      irq.c

+ 6 - 0
irq.c

@@ -300,7 +300,13 @@ int scan_irqs(lub_list_t *irqs, lub_list_t *balance_irqs, lub_list_t *pxms)
 		 * switched to new state).
 		 */
 		irq_get_affinity(irq);
+		/* If affinity uses more than one CPU then consider IRQ as new one.
+		 * It's not normal state for really non-new IRQs.
+		 */
+		if (cpus_weight(irq->affinity) > 1)
+			new = 1;
 
+		/* Add new IRQs to list of IRQs to balance. */
 		if (new) {
 			/* By default all CPUs are local for IRQ. Real local
 			   CPUs will be find while sysfs scan. */