• Dean Roe's avatar
    [IA64] - Avoid slow TLB purges on SGI Altix systems · c1902aae
    Dean Roe authored
    
    
    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: default avatarDean Roe <roe@sgi.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    c1902aae