x86, x2apic: Minimize IPI register writes using cluster groups
authorCyrill Gorcunov <gorcunov@openvz.org>
Thu, 19 May 2011 23:45:49 +0000 (16:45 -0700)
committerIngo Molnar <mingo@elte.hu>
Fri, 20 May 2011 11:41:09 +0000 (13:41 +0200)
commit9d0fa6c5f43f2d9c6966dcab7af96a717682fdec
treee3fdd94ba55748fbfc41ad5e38c32169638f2091
parenta39d1f3f67f6a3d72b24f0d8bf9a295a27ea448e
x86, x2apic: Minimize IPI register writes using cluster groups

In the case of x2apic cluster mode we can group IPI register
writes based on the cluster group instead of individual per-cpu
destination messages.

This reduces the apic register writes and reduces the amount of
IPI messages (in the best case we can reduce it by a factor of
16).

With this change, the cost of flush_tlb_others(), with the flush
tlb IPI being sent from a cpu in the socket-1 to all the logical
cpus in socket-2 (on a Westmere-EX system that has 20 logical
cpus in a socket) is 3x times better now (compared to the former
'send one-by-one' algorithm).

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: steiner@sgi.com
Cc: yinghai@kernel.org
Link: http://lkml.kernel.org/r/20110519234637.512271057@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/apic/x2apic_cluster.c