x86, SGI UV: TLB shootdown using broadcast assist unit
authorCliff Wickman <cpw@sgi.com>
Mon, 2 Jun 2008 13:56:14 +0000 (08:56 -0500)
committerIngo Molnar <mingo@elte.hu>
Tue, 8 Jul 2008 10:23:22 +0000 (12:23 +0200)
commit1812924bb1823950c1dc95c478b71b037057356e
tree74ecf29e332a320d7850008ca4f8607dace88de6
parentd98b940ab29a245de84a1c138b866dcc29217601
x86, SGI UV: TLB shootdown using broadcast assist unit

TLB shootdown for SGI UV.

Depends on patch (in tip/x86/irq):
   x86-update-macros-used-by-uv-platform.patch   Jack Steiner May 29

This patch provides the ability to flush TLB's in cpu's that are not on
the local node.  The hardware mechanism for distributing the flush
messages is the UV's "broadcast assist unit".

The hook to intercept TLB shootdown requests is a 2-line change to
native_flush_tlb_others() (arch/x86/kernel/tlb_64.c).

This code has been tested on a hardware simulator. The real hardware
is not yet available.

The shootdown statistics are provided through /proc/sgi_uv/ptc_statistics.
The use of /sys was considered, but would have required the use of
many /sys files.  The debugfs was also considered, but these statistics
should be available on an ongoing basis, not just for debugging.

Issues to be fixed later:
- The IRQ for the messaging interrupt is currently hardcoded as 200
  (see UV_BAU_MESSAGE).  It should be dynamically assigned in the future.
- The use of appropriate udelay()'s is untested, as they are a problem
  in the simulator.

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/Makefile
arch/x86/kernel/entry_64.S
arch/x86/kernel/tlb_64.c
arch/x86/kernel/tlb_uv.c [new file with mode: 0644]
include/asm-x86/uv/uv_bau.h [new file with mode: 0644]