Re: [PATCH 1/2] x86, apic: optimize cpu traversal in__assign_irq_vector() using domain membership

From: Yinghai Lu
Date: Wed Jun 20 2012 - 01:53:23 EST


On Tue, Jun 19, 2012 at 4:43 PM, Suresh Siddha
<suresh.b.siddha@xxxxxxxxx> wrote:
> Currently __assign_irq_vector() goes through each cpu in the specified mask
> until it finds a free vector in all the cpu's that are part of the same
> interrupt domain. We visit all the interrupt domain sibling cpus to reserve
> the free vector. So, when we fail to find a free vector in an interrupt
> domain, it is safe to continue our search with a cpu belonging to a new
> interrupt domain. No need to go through each cpu, if the domain
> containing that cpu is already visited.
>
> Use the irq_cfg's old_domain to track the visited domains and optimize
> the cpu traversal while finding a free vector in the given cpumask.
>
> NOTE: We can also optimize the search by using for_each_cpu and skip the
> current cpu, if it is not the first cpu in the mask returned by the
> vector_allocation_domain(). But re-using the cfg->old_domain to track
> the visited domains will be slightly faster.
>
> Signed-off-by: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>

Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/