Thread (5 messages) 5 messages, 3 authors, 2009-09-28

Disable highmem with SMP if no h/w TLB broadcasting

From: Russell King - ARM Linux <hidden>
Date: 2009-09-28 10:11:15

On Sun, Sep 27, 2009 at 09:37:22PM -0400, Nicolas Pitre wrote:
On Sun, 27 Sep 2009, Russell King - ARM Linux wrote:
quoted
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().
Until we have a solution that's acceptable to everyone, I suggest that
the patch I attached is merged.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help