1. 30 8月, 2014 1 次提交
  2. 04 3月, 2014 1 次提交
  3. 20 3月, 2012 1 次提交
  4. 15 2月, 2011 1 次提交
    • S
      sh: Flush executable pages in copy_user_highpage · a25bbe12
      Stuart Menefy 提交于
      This resolves a problem seen when using the Android dynamic linker.
      Sometimes the dynamic linker would seg-fault at start up and this
      was eventually traced to the handling of a COW fault for a page which
      was being modified by the linker. If there was no cache aliasing between
      the kernel and the user page, the page was not flushed, leaving the
      newly copied data in the D-cache. However when executing instructions
      from that page, the I-cache is filled directly from external memory,
      rather than the D-cache, and causing garbage to be executed.
      Signed-off-by: NStuart Menefy <stuart.menefy@st.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      a25bbe12
  5. 01 12月, 2010 1 次提交
    • P
      sh: Assume new page cache pages have dirty dcache lines. · 55661fc1
      Paul Mundt 提交于
      This follows the ARM change c0177800
      ("ARM: 6379/1: Assume new page cache pages have dirty D-cache") for the
      same rationale:
      
          There are places in Linux where writes to newly allocated page
          cache pages happen without a subsequent call to flush_dcache_page()
          (several PIO drivers including USB HCD). This patch changes the
          meaning of PG_arch_1 to be PG_dcache_clean and always flush the
          D-cache for a newly mapped page in update_mmu_cache().
      
      This addresses issues seen with executing binaries from MMC, in
      addition to some of the other HCDs that don't explicitly do cache
      management for their pipe-in buffers.
      Requested-by: NYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      55661fc1
  6. 19 4月, 2010 1 次提交
  7. 15 1月, 2010 1 次提交
  8. 24 12月, 2009 1 次提交
  9. 04 12月, 2009 1 次提交
  10. 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
  11. 12 11月, 2009 1 次提交
  12. 27 10月, 2009 1 次提交
  13. 16 10月, 2009 1 次提交
  14. 13 10月, 2009 1 次提交
  15. 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
  16. 08 9月, 2009 1 次提交
  17. 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
  18. 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
  19. 21 8月, 2009 1 次提交
  20. 16 8月, 2009 1 次提交
  21. 15 8月, 2009 10 次提交
  22. 04 8月, 2009 4 次提交
  23. 28 7月, 2009 1 次提交
  24. 27 7月, 2009 2 次提交
  25. 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
  26. 10 11月, 2008 1 次提交
  27. 28 7月, 2008 1 次提交