]> err.no Git - linux-2.6/commit
[IA64] - Avoid slow TLB purges on SGI Altix systems
authorDean Roe <roe@sgi.com>
Thu, 27 Oct 2005 20:41:04 +0000 (15:41 -0500)
committerTony Luck <tony.luck@intel.com>
Thu, 27 Oct 2005 21:44:58 +0000 (14:44 -0700)
commitc1902aae322952f8726469a6657df7b9d5c794fe
tree5c78f21c19597b64faf06e0faee7726ae01f7bbb
parent72ab373a5688a78cbdaf3bf96012e597d5399bb7
[IA64] - Avoid slow TLB purges on SGI Altix systems

flush_tlb_all() can be a scaling issue on large SGI Altix systems
since it uses the global call_lock and always executes on all cpus.
When a process enters flush_tlb_range() to purge TLBs for another
process, it is possible to avoid flush_tlb_all() and instead allow
sn2_global_tlb_purge() to purge TLBs only where necessary.

This patch modifies flush_tlb_range() so that this case can be handled
by platform TLB purge functions and updates ia64_global_tlb_purge()
accordingly.  sn2_global_tlb_purge() now calculates the region register
value from the mm argument introduced with this patch.

Signed-off-by: Dean Roe <roe@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/mm/tlb.c
arch/ia64/sn/kernel/sn2/sn2_smp.c
include/asm-ia64/machvec.h