[RFC PATCH] ARM: Allow lazy cache flushing via PG_arch_1 for highmem pages

Nicolas Pitre nico at fluxnic.net
Tue Jul 20 09:10:59 EDT 2010


On Tue, 20 Jul 2010, Catalin Marinas wrote:

> Current flush_dcache_page() implementation does not allow lazy cache
> flushing for highmem pages (introduced by commit d73cd42) on the
> assumption that the temporary kmap mapping would disappear. A subsequent
> commit (7e5a69e) allows __flush_dcache_page() to handle highmem pages so
> we can allow lazy cache flushing even for highmem pages.

Actually this has been in the back of my mind for a while.  The 
reasoning in d73cd42 is flawed, irrespective of the changes in 7e5a69e.  
Even without the later, it should have been possible to lazily flush the 
himem pages because they get flushed anyway the moment their virtual 
mapping goes away through flush_cache_kmaps().  What the second commit 
is doing is making highmem usable on a VIPT system while it was totally 
unacounted for and broken before.


Nicolas

> Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Nicolas Pitre <nico at fluxnic.net>

Acked-by: Nicolas Pitre <nico at linaro.org>


Nicolas



More information about the linux-arm-kernel mailing list