2012-09-06-16-46 merged

Adrian Hunter (1):
      perf tools: fix build for another rbtree.c change

Andrea Arcangeli (1):
      mm: mmu_notifier: make the mmu_notifier srcu static

Andrew Morton (7):

Christoph Lameter (13):
      mm/slub: Use kmem_cache for the kmem_cache structure
      mm/slab_common: Improve error handling in kmem_cache_create
      mm/sl[aou]b: Move list_add() to slab_common.c
      mm/sl[aou]b: Extract a common function for kmem_cache_destroy
      mm/sl[aou]b: Use "kmem_cache" name for slab cache with kmem_cache struct
      mm/sl[aou]b: Move freeing of kmem_cache structure to common code
      mm/sl[aou]b: Get rid of __kmem_cache_destroy
      mm/sl[aou]b: Move duping of slab name to slab_common.c
      mm/sl[aou]b: Do slab aliasing call from common code
      mm/sl[aou]b: Move sysfs_slab_add to common
      mm/sl[aou]b: Move kmem_cache allocations into common code
      mm/sl[aou]b: Shrink __kmem_cache_create() parameter lists
      mm/sl[aou]b: Move kmem_cache refcounting to common code

David Woodhouse (1):
      rbtree: fix jffs2 build issue due to renamed __rb_parent_color field

Davidlohr Bueso (1):
      oom: remove deprecated oom_adj

Gavin Shan (2):
      mm/mmu_notifier: init notifier if necessary
      mm/mmu_notifier: init notifier if necessary

Gerald Schaefer (8):
      thp, x86: introduce HAVE_ARCH_TRANSPARENT_HUGEPAGE
      thp: remove assumptions on pgtable_t type
      thp: introduce pmdp_invalidate()
      thp: make MADV_HUGEPAGE check for mm->def_flags
      thp, s390: thp splitting backend for s390
      thp, s390: thp pagetable pre-allocation for s390
      thp, s390: disable thp for kvm host on s390
      thp, s390: architecture backend for thp on s390

Haggai Eran (1):
      mm: wrap calls to set_pte_at_notify with invalidate_range_start and invalidate_range_end

Hugh Dickins (1):
      mm/mmap.c: replace find_vma_prepare() with clearer find_vma_links()

KOSAKI Motohiro (3):
      Revert "mm: mempolicy: Let vma_merge and vma_split handle vma->vm_policy linkages"
      mempolicy: remove mempolicy sharing
      mempolicy: fix refcount leak in mpol_set_shared_policy()

Mel Gorman (8):
      mm: compaction: update comment in try_to_compact_pages
      mm: vmscan: scale number of pages reclaimed by reclaim/compaction based on failures
      mm: have order > 0 compaction start near a pageblock with free pages
      mm: compaction: Abort async compaction if locks are contended or taking too long
      mm: compaction: capture a suitable high-order page immediately when it is made available
      mempolicy: fix a race in shared_policy_replace()
      mempolicy: fix a memory corruption by refcount imbalance in alloc_pages_vma()

Michal Hocko (1):
      Merge branch 'memcg-slab-dependencies' into memcg-devel

Michel Lespinasse (30):
      mm: adjust final #endif position in mm/internal.h
      mm: fix potential anon_vma locking issue in mprotect()
      ipc/mqueue: remove unnecessary rb_init_node() calls
      rbtree: reference Documentation/rbtree.txt for usage instructions
      rbtree: empty nodes have no color
      rbtree: fix incorrect rbtree node insertion in fs/proc/proc_sysctl.c
      rbtree: move some implementation details from rbtree.h to rbtree.c
      rbtree: performance and correctness test
      rbtree: break out of rb_insert_color loop after tree rotation
      rbtree: adjust root color in rb_insert_color() only when necessary
      rbtree: low level optimizations in rb_insert_color()
      rbtree: adjust node color in __rb_erase_color() only when necessary
      rbtree: optimize case selection logic in __rb_erase_color()
      rbtree: low level optimizations in __rb_erase_color()
      rbtree: coding style adjustments
      rbtree: optimize fetching of sibling node
      rbtree test: fix sparse warning about 64-bit constant
      rbtree: add __rb_change_child() helper function
      rbtree: place easiest case first in rb_erase()
      rbtree: handle 1-child recoloring in rb_erase() instead of rb_erase_color()
      rbtree: low level optimizations in rb_erase()
      rbtree: augmented rbtree test
      rbtree: faster augmented rbtree manipulation
      rbtree: remove prior augmented rbtree implementation
      rbtree: add RB_DECLARE_CALLBACKS() macro
      rbtree: add prio tree and interval tree tests
      mm: replace vma prio_tree with an interval tree
      kmemleak: use rbtree instead of prio tree
      prio_tree: remove
      rbtree: move augmented rbtree functionality to rbtree_augmented.h

Minchan Kim (2):
      mm: change enum migrate_mode with bitwise type
      mm: support MIGRATE_DISCARD

Pekka Enberg (1):
      Revert "mm/sl[aou]b: Move sysfs_slab_add to common"

Robin Dong (1):
      mm: fix nonuniform page status when writing new file with small buffer

Sagi Grimberg (2):
      mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may safely schedule
      mm: move all mmu notifier invocations to be done outside the PT lock

Shuah Khan (1):
      mm/slab: restructure kmem_cache_create() debug checks

Wanpeng Li (1):
      mm/vmscan: fix error number for failed kthread

Wen Congyang (1):
      memory hotplug: reset pgdat->kswapd to NULL if creating kernel thread fails

Will Deacon (1):
      mm: hugetlb: add arch hook for clearing page flags before entering pool

Xiao Guangrong (13):
      mm: mmu_notifier: fix inconsistent memory between secondary MMU and host
      thp: fix the count of THP_COLLAPSE_ALLOC
      thp: remove unnecessary check in start_khugepaged
      thp: move khugepaged_mutex out of khugepaged
      thp: remove unnecessary khugepaged_thread check
      thp: remove wake_up_interruptible in the exit path
      thp: remove some code depend on CONFIG_NUMA
      thp: merge page pre-alloc in khugepaged_loop into khugepaged_do_scan
      thp: release page in page pre-alloc path
      thp: introduce khugepaged_prealloc_page and khugepaged_alloc_page
      thp: remove khugepaged_loop
      thp: use khugepaged_enabled to remove duplicate code
      thp: remove unnecessary set_recommended_min_free_kbytes

Xishi Qiu (1):
      memory-hotplug: build zonelists when offlining pages
mm: wrap calls to set_pte_at_notify with invalidate_range_start and invalidate_range_end

In order to allow sleeping during invalidate_page mmu notifier calls, we
need to avoid calling when holding the PT lock.  In addition to its direct
calls, invalidate_page can also be called as a substitute for a change_pte
call, in case the notifier client hasn't implemented change_pte.

This patch drops the invalidate_page call from change_pte, and instead
wraps all calls to change_pte with invalidate_range_start and
invalidate_range_end calls.

Note that change_pte still cannot sleep after this patch, and that clients
implementing change_pte should not take action on it in case the number of
outstanding invalidate_range_start calls is larger than one, otherwise
they might miss a later invalidation.

Signed-off-by: Haggai Eran <haggaie@mellanox.com>
Cc: Andrea Arcangeli <andrea@qumranet.com>
Cc: Sagi Grimberg <sagig@mellanox.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Cc: Or Gerlitz <ogerlitz@mellanox.com>
Cc: Haggai Eran <haggaie@mellanox.com>
Cc: Shachar Raindel <raindel@mellanox.com>
Cc: Liran Liss <liranl@mellanox.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Avi Kivity <avi@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
4 files changed