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

Nicolas Pitre nico at fluxnic.net
Tue Jul 20 11:17:50 EDT 2010


On Tue, 20 Jul 2010, Nicolas Pitre wrote:

> 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.
> 
> Acked-by: Nicolas Pitre <nico at linaro.org>

BTW, while I agree with the patch, you might have guessed that I prefer 
that the commit message be changed to more reflect reality.


Nicolas



More information about the linux-arm-kernel mailing list