• C
    x86, SGI UV: TLB shootdown using broadcast assist unit · 1812924b
    Cliff Wickman 提交于
    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: NCliff Wickman <cpw@sgi.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    1812924b
tlb_uv.c 19.0 KB