1. 14 Jul, 2017 1 commit
  2. 10 Feb, 2015 1 commit
  3. 20 Aug, 2013 1 commit
  4. 25 May, 2011 1 commit
    • KOSAKI Motohiro's avatar
      mm: convert mm->cpu_vm_cpumask into cpumask_var_t · de03c72c
      KOSAKI Motohiro authored
      cpumask_t is very big struct and cpu_vm_mask is placed wrong position.
      It might lead to reduce cache hit ratio.
      This patch has two change.
      1) Move the place of cpumask into last of mm_struct. Because usually cpumask
         is accessed only front bits when the system has cpu-hotplug capability
      2) Convert cpu_vm_mask into cpumask_var_t. It may help to reduce memory
         footprint if cpumask_size() will use nr_cpumask_bits properly in future.
      In addition, this patch change the name of cpu_vm_mask with cpu_vm_mask_var.
      It may help to detect out of tree cpu_vm_mask users.
      This patch has no functional change.
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  5. 23 Apr, 2010 1 commit
  6. 20 Feb, 2010 1 commit
    • Russell King's avatar
      MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself · 4b3073e1
      Russell King authored
      On VIVT ARM, when we have multiple shared mappings of the same file
      in the same MM, we need to ensure that we have coherency across all
      copies.  We do this via make_coherent() by making the pages
      This used to work fine, until we allowed highmem with highpte - we
      now have a page table which is mapped as required, and is not available
      for modification via update_mmu_cache().
      Ralf Beache suggested getting rid of the PTE value passed to
        On MIPS update_mmu_cache() calls __update_tlb() which walks pagetables
        to construct a pointer to the pte again.  Passing a pte_t * is much
        more elegant.  Maybe we might even replace the pte argument with the
      Ben Herrenschmidt would also like the pte pointer for PowerPC:
        Passing the ptep in there is exactly what I want.  I want that
        -instead- of the PTE value, because I have issue on some ppc cases,
        for I$/D$ coherency, where set_pte_at() may decide to mask out the
      So, pass in the mapped page table pointer into update_mmu_cache(), and
      remove the PTE value, updating all implementations and call sites to
      Includes a fix from Stephen Rothwell:
        sparc: fix fallout from update_mmu_cache API change
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
  7. 25 Jan, 2010 1 commit
    • James Bottomley's avatar
      mm: add coherence API for DMA to vmalloc/vmap areas · 9df5f741
      James Bottomley authored
      On Virtually Indexed architectures (which don't do automatic alias
      resolution in their caches), we have to flush via the correct
      virtual address to prepare pages for DMA.  On some architectures
      (like arm) we cannot prevent the CPU from doing data movein along
      the alias (and thus giving stale read data), so we not only have to
      introduce a flush API to push dirty cache lines out, but also an invalidate
      API to kill inconsistent cache lines that may have moved in before
      DMA changed the data
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
  8. 19 Oct, 2007 1 commit
  9. 16 Oct, 2007 1 commit
  10. 14 Jun, 2007 1 commit
  11. 08 Jan, 2007 1 commit
    • Russell King's avatar
      [ARM] pass vma for flush_anon_page() · a6f36be3
      Russell King authored
      Since get_user_pages() may be used with processes other than the
      current process and calls flush_anon_page(), flush_anon_page() has to
      cope in some way with non-current processes.
      It may not be appropriate, or even desirable to flush a region of
      virtual memory cache in the current process when that is different to
      the process that we want the flush to occur for.
      Therefore, pass the vma into flush_anon_page() so that the architecture
      can work out whether the 'vmaddr' is for the current process or not.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
  12. 13 Dec, 2006 1 commit
  13. 26 Mar, 2006 2 commits
    • James Bottomley's avatar
      [PATCH] Add flush_kernel_dcache_page() API · 5a3a5a98
      James Bottomley authored
      We have a problem in a lot of emulated storage in that it takes a page from
      get_user_pages() and does something like
      modify page
      However, nothing has flushed the kernel cache view of the page before the
      kunmap.  We need a lightweight API to do this, so this new API would
      specifically be for flushing the kernel cache view of a user page which the
      kernel has modified.  The driver would need to add
      flush_kernel_dcache_page(page) before the final kunmap.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • James Bottomley's avatar
      [PATCH] Add API for flushing Anon pages · 03beb076
      James Bottomley authored
      Currently, get_user_pages() returns fully coherent pages to the kernel for
      anything other than anonymous pages.  This is a problem for things like
      fuse and the SCSI generic ioctl SG_IO which can potentially wish to do DMA
      to anonymous pages passed in by users.
      The fix is to add a new memory management API: flush_anon_page() which
      is used in get_user_pages() to make anonymous pages coherent.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  14. 15 Jan, 2006 1 commit
  15. 30 Oct, 2005 1 commit
    • Hugh Dickins's avatar
      [PATCH] mm: flush_tlb_range outside ptlock · 663b97f7
      Hugh Dickins authored
      There was one small but very significant change in the previous patch:
      mprotect's flush_tlb_range fell outside the page_table_lock: as it is in 2.4,
      but that doesn't prove it safe in 2.6.
      On some architectures flush_tlb_range comes to the same as flush_tlb_mm, which
      has always been called from outside page_table_lock in dup_mmap, and is so
      proved safe.  Others required a deeper audit: I could find no reliance on
      page_table_lock in any; but in ia64 and parisc found some code which looks a
      bit as if it might want preemption disabled.  That won't do any actual harm,
      so pending a decision from the maintainers, disable preemption there.
      Remove comments on page_table_lock from flush_tlb_mm, flush_tlb_range and
      flush_tlb_page entries in cachetlb.txt: they were rather misleading (what
      generic code does is different from what usually happens), the rules are now
      changing, and it's not yet clear where we'll end up (will the generic
      tlb_flush_mmu happen always under lock?  never under lock?  or sometimes under
      and sometimes not?).
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  16. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      Let it rip!