x86/apic: Avoid useless scanning thru a cpumask in assign_irq_vector()
authorAlexander Gordeev <agordeev@redhat.com>
Thu, 7 Jun 2012 13:15:44 +0000 (15:15 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 8 Jun 2012 09:44:29 +0000 (11:44 +0200)
commit8637e38aff14d048b649075114023023a2e80fba
treecbafb89d56c83e7a74d2297a490989865e95cccd
parent1bccd58bfffc5a677051937b332b71f0686187c1
x86/apic: Avoid useless scanning thru a cpumask in assign_irq_vector()

In case of static vector allocation domains (i.e. flat) if all
vector numbers are exhausted, an attempt to assign a new vector
will lead to useless scans through all CPUs in the cpumask, even
though it is known that each new pass would fail. Make this
corner case less painful by letting report whether the vector
allocation domain depends on passed arguments or not and stop
scanning early.

The same could have been achived by introducing a static flag to
the apic operations. But let's allow vector_allocation_domain()
have more intelligence here and decide dynamically, in case we
would need it in the future.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/20120607131542.GE4759@dhcp-26-207.brq.redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/include/asm/apic.h
arch/x86/kernel/apic/apic_noop.c
arch/x86/kernel/apic/io_apic.c