1. 04 12月, 2009 1 次提交
  2. 24 11月, 2009 1 次提交
    • S
      sh: Improve performance of SH4 versions of copy/clear_user_highpage · 39ac11c1
      Stuart Menefy 提交于
      The previous implementation of clear_user_highpage and copy_user_highpage
      checked to see if there was a D-cache aliasing issue between the user
      and kernel mappings of a page, but if there was they always did a
      flush with writeback on the dirtied kernel alias.
      
      However as we now have the ability to map a page into kernel space
      with the same cache colour as the user mapping, there is no need to
      write back this data.
      
      Currently we also invalidate the kernel alias as a precaution, however
      I'm not sure if this is actually required.
      
      Also correct the definition of FIX_CMAP_END so that the mappings created
      by kmap_coherent() are actually at the correct colour.
      Signed-off-by: NStuart Menefy <stuart.menefy@st.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      39ac11c1
  3. 12 11月, 2009 1 次提交
  4. 27 10月, 2009 1 次提交
  5. 16 10月, 2009 1 次提交
  6. 13 10月, 2009 1 次提交
  7. 09 9月, 2009 1 次提交
    • P
      sh: sh4_flush_cache_mm() optimizations. · 654d364e
      Paul Mundt 提交于
      The i-cache flush in the case of VM_EXEC was added way back when as a
      sanity measure, and in practice we only care about evicting aliases from
      the d-cache. As a result, it's possible to drop the i-cache flush
      completely here.
      
      After careful profiling it's also come up that all of the work associated
      with hunting down aliases and doing ranged flushing ends up generating
      more overhead than simply blasting away the entire dcache, particularly
      if there are many mm's that need to be iterated over. As a result of
      that, just move back to flush_dcache_all() in these cases, which restores
      the old behaviour, and vastly simplifies the path.
      
      Additionally, on platforms without aliases at all, this can simply be
      nopped out. Presently we have the alias check in the SH-4 specific
      version, but this is true for all of the platforms, so move the check up
      to a generic location. This cuts down quite a bit on superfluous cacheop
      IPIs.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      654d364e
  8. 08 9月, 2009 1 次提交
  9. 03 9月, 2009 1 次提交
    • P
      sh: Fix up and optimize the kmap_coherent() interface. · 0906a3ad
      Paul Mundt 提交于
      This fixes up the kmap_coherent/kunmap_coherent() interface for recent
      changes both in the page fault path and the shared cache flushers, as
      well as adding in some optimizations.
      
      One of the key things to note here is that the TLB flush itself is
      deferred until the unmap, and the call in to update_mmu_cache() itself
      goes away, relying on the regular page fault path to handle the lazy
      dcache writeback if necessary.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      0906a3ad
  10. 01 9月, 2009 1 次提交
    • P
      sh: Fix up UP deadlock with SMP-aware cache ops. · 6f379578
      Paul Mundt 提交于
      This builds on top of the previous reversion and implements a special
      on_each_cpu() variant that simple disables preemption across the call
      while leaving the interrupt state to the function itself. There were some
      unintended consequences with IRQ disabling in some of these paths on UP
      that ran in to a deadlock scenario with IRQs being missed.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      6f379578
  11. 21 8月, 2009 1 次提交
  12. 16 8月, 2009 1 次提交
  13. 15 8月, 2009 10 次提交
  14. 04 8月, 2009 4 次提交
  15. 28 7月, 2009 1 次提交
  16. 27 7月, 2009 2 次提交
  17. 22 7月, 2009 1 次提交
    • P
      sh: Migrate from PG_mapped to PG_dcache_dirty. · 2277ab4a
      Paul Mundt 提交于
      This inverts the delayed dcache flush a bit to be more in line with other
      platforms. At the same time this also gives us the ability to do some
      more optimizations and cleanup. Now that the update_mmu_cache() callsite
      only tests for the bit, the implementation can gradually be split out and
      made generic, rather than relying on special implementations for each of
      the peculiar CPU types.
      
      SH7705 in 32kB mode and SH-4 still need slightly different handling, but
      this is something that can remain isolated in the varying page copy/clear
      routines. On top of that, SH-X3 is dcache coherent, so there is no need
      to bother with any of these tests in the PTEAEX version of
      update_mmu_cache(), so we kill that off too.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2277ab4a
  18. 10 11月, 2008 1 次提交
  19. 28 7月, 2008 1 次提交
  20. 07 11月, 2007 2 次提交
  21. 31 7月, 2007 1 次提交
  22. 24 7月, 2007 1 次提交
    • P
      sh: Add kmap_coherent()/kunmap_coherent() interface for SH-4. · 8cf1a743
      Paul Mundt 提交于
      This wires up kmap_coherent() and kunmap_coherent() on SH-4, and
      moves away from the p3map_mutex and reserved P3 space, opting to
      use fixmaps for colouring instead.
      
      The copy_user_page()/clear_user_page() implementations are moved
      to this, which fixes the nasty blowups with spinlock debugging
      as a result of having some of these calls nested under the page
      table lock.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      8cf1a743
  23. 05 3月, 2007 1 次提交
  24. 13 2月, 2007 3 次提交