powerpc/8xx: reduce pressure on TLB due to context switches
authorLEROY Christophe <christophe.leroy@c-s.fr>
Mon, 19 Jan 2015 15:44:42 +0000 (16:44 +0100)
committerScott Wood <scottwood@freescale.com>
Fri, 30 Jan 2015 03:51:06 +0000 (21:51 -0600)
commitdebddd95ec0bb8ac1bbe719b5e4588e453c7b2fc
tree21cb26fa6b4b1ca7ee7cf78c2894ee261689241f
parent7f93c9d90f4dc7084217cf94574e427bad40e37c
powerpc/8xx: reduce pressure on TLB due to context switches

For nohash powerpc, when we run out of contexts, contexts are freed by stealing
used contexts in-turn. When a victim has been selected, the associated TLB
entries are freed using _tlbil_pid(). Unfortunatly, on the PPC 8xx, _tlbil_pid()
does a tlbia, hence flushes ALL TLB entries and not only the one linked to the
stolen context. Therefore, as implented today, at each task switch requiring a
new context, all entries are flushed.

This patch modifies the implementation so that when running out of contexts, all
contexts get freed at once, hence dividing the number of calls to tlbia by 16.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/mm/mmu_context_nohash.c