Commit 888411be authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 irq update from Ingo Molnar:
 "A single commit that micro-optimizes an IRQ vectors code path in the
  CPU offlining code"

* 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/irq: Optimize free vector check in the CPU offline path
parents 7d6a31c3 c0edbd4a
...@@ -394,6 +394,9 @@ int check_irq_vectors_for_cpu_disable(void) ...@@ -394,6 +394,9 @@ int check_irq_vectors_for_cpu_disable(void)
!cpumask_subset(&affinity_new, &online_new)) !cpumask_subset(&affinity_new, &online_new))
this_count++; this_count++;
} }
/* No need to check any further. */
if (!this_count)
return 0;
count = 0; count = 0;
for_each_online_cpu(cpu) { for_each_online_cpu(cpu) {
...@@ -411,8 +414,10 @@ int check_irq_vectors_for_cpu_disable(void) ...@@ -411,8 +414,10 @@ int check_irq_vectors_for_cpu_disable(void)
for (vector = FIRST_EXTERNAL_VECTOR; for (vector = FIRST_EXTERNAL_VECTOR;
vector < first_system_vector; vector++) { vector < first_system_vector; vector++) {
if (!test_bit(vector, used_vectors) && if (!test_bit(vector, used_vectors) &&
IS_ERR_OR_NULL(per_cpu(vector_irq, cpu)[vector])) IS_ERR_OR_NULL(per_cpu(vector_irq, cpu)[vector])) {
count++; if (++count == this_count)
return 0;
}
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment