• Benjamin Herrenschmidt's avatar
    powerpc/mm: Rework context management for CPUs with no hash table · 2ca8cf73
    Benjamin Herrenschmidt authored
    This reworks the context management code used by 4xx,8xx and
    freescale BookE.  It adds support for SMP by implementing a
    concept of stale context map to lazily flush the TLB on
    processors where a context may have been invalidated.  This
    also contains the ground work for generalizing such lazy TLB
    flushing by just picking up a new PID and marking the old one
    stale.  This will be implemented later.
    
    This is a first implementation that uses a global spinlock.
    
    Ideally, we should try to get at least the fast path (context ID
    already assigned) lockless or limited to a per context lock,
    but for now this will do.
    
    I tried to keep the UP case reasonably simple to avoid adding
    too much overhead to 8xx which does a lot of context stealing
    since it effectively has only 16 PIDs available.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: default avatarKumar Gala <galak@kernel.crashing.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    2ca8cf73
mmu_context_nohash.c 9.05 KB