1. 12 11月, 2009 1 次提交
  2. 27 10月, 2009 1 次提交
  3. 16 10月, 2009 1 次提交
  4. 13 10月, 2009 1 次提交
  5. 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
  6. 08 9月, 2009 1 次提交
  7. 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
  8. 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
  9. 21 8月, 2009 1 次提交
  10. 16 8月, 2009 1 次提交
  11. 15 8月, 2009 10 次提交
  12. 04 8月, 2009 4 次提交
  13. 28 7月, 2009 1 次提交
  14. 27 7月, 2009 2 次提交
  15. 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
  16. 10 11月, 2008 1 次提交
  17. 28 7月, 2008 1 次提交
  18. 07 11月, 2007 2 次提交
  19. 31 7月, 2007 1 次提交
  20. 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
  21. 05 3月, 2007 1 次提交
  22. 13 2月, 2007 3 次提交
  23. 06 12月, 2006 2 次提交
    • P
      sh: p3map_sem sem2mutex conversion. · 52e27782
      Paul Mundt 提交于
      Simple sem2mutex conversion for the p3map semaphores.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      52e27782
    • P
      sh: Preliminary support for SH-X2 MMU. · 21440cf0
      Paul Mundt 提交于
      This adds some preliminary support for the SH-X2 MMU, used by
      newer SH-4A parts (particularly SH7785).
      
      This MMU implements a 'compat' mode with SH-X MMUs and an
      'extended' mode for SH-X2 extended features. Extended features
      include additional page sizes (8kB, 4MB, 64MB), as well as the
      addition of page execute permissions.
      
      The extended mode attributes are placed in a second data array,
      which requires us to switch to 64-bit PTEs when in X2 mode.
      
      With the addition of the exec perms, we also overhaul the mmap
      prots somewhat, now that it's possible to handle them more
      intelligently.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      21440cf0