From: Benjamin Herrenschmidt Date: Thu, 18 Dec 2008 19:13:29 +0000 (+0000) Subject: powerpc/mm: Rework context management for CPUs with no hash table X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=2ca8cf738907180e7fbda90f25f32b86feda609f;hp=2ca8cf738907180e7fbda90f25f32b86feda609f;p=deliverable%2Flinux.git powerpc/mm: Rework context management for CPUs with no hash table 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: Benjamin Herrenschmidt Acked-by: Kumar Gala Signed-off-by: Paul Mackerras ---