Disable highmem with SMP if no h/w TLB broadcasting

Nicolas Pitre nico at fluxnic.net
Sun Sep 27 21:37:22 EDT 2009


On Sun, 27 Sep 2009, Russell King - ARM Linux wrote:

> We suffer an unfortunate combination of "features" which makes highmem
> support on platforms without hardware TLB maintainence broadcast difficult:
> 
> - we need kmap_high_get() support for DMA cache coherence
> - this requires kmap_high() to take a spinlock with IRQs disabled
> - kmap_high() occasionally calls flush_all_zero_pkmaps() to clear
>   out old mappings

Hmmm...  I guess there could be a way to work around this limitation by 
replacing flush_tlb_kernel_range() with something that would set a per 
CPU flag on all CPUs to schedule TLB flushing the next time they call 
kmap_high().


Nicolas



More information about the linux-arm-kernel mailing list