2017-10-19-17-00 merged

Andrea Arcangeli (1):
      userfaultfd: hugetlbfs: prevent UFFDIO_COPY to fill beyond the end of i_size

Andrew Morton (4):
      mm-drop-migrate-type-checks-from-has_unmovable_pages-fix
      mm-deferred_init_memmap-improvements-fix
      mm-stop-zeroing-memory-during-allocation-in-vmemmap-fix
      mm-batch-radix-tree-operations-when-truncating-pages-fix-fix

Ashish Samant (1):
      ocfs2: fstrim: Fix start offset of first cluster group during fstrim

Colin Ian King (1):
      drivers/block/zram/zram_drv.c: make zram_page_end_io() static

David Rientjes (1):
      mm/slab.c: only set __GFP_RECLAIMABLE once

Huang Ying (2):
      mm, /proc/pid/pagemap: fix soft dirty marking for PMD migration entry
      mm, swap: Fix race between swap count continuation operations

Jan Kara (8):
      mm: speed up cancel_dirty_page() for clean pages
      mm: refactor truncate_complete_page()
      mm: factor out page cache page freeing into a separate function
      mm: move accounting updates before page_cache_tree_delete()
      mm: move clearing of page->mapping to page_cache_tree_delete()
      mm: factor out checks and accounting from __delete_from_page_cache()
      mm: batch radix tree operations when truncating pages
      mm: convert delete_from_page_cache_batch() to pagevec

Jérôme Glisse (2):
      mm-mmu_notifier-avoid-double-notification-when-it-is-useless-v2
      mm/mmu_notifier: avoid call to invalidate_range() in range_end()

Kemi Wang (1):
      mm, sysctl: make NUMA stats configurable

Kirill A. Shutemov (1):
      mm-consolidate-page-table-accounting-fix

Laszlo Toth (1):
      mm, soft_offline: improve hugepage soft offlining error log

Mel Gorman (11):
      mm, page_alloc: enable/disable IRQs once when freeing a list of pages
      mm-page_alloc-enable-disable-irqs-once-when-freeing-a-list-of-pages-fix
      mm, truncate: do not check mapping for every page being truncated
      mm, truncate: remove all exceptional entries from pagevec under one lock
      mm: only drain per-cpu pagevecs once per pagevec usage
      mm, pagevec: remove cold parameter for pagevecs
      mm: remove cold parameter for release_pages
      mm: remove cold parameter from free_hot_cold_page*
      mm-remove-cold-parameter-from-free_hot_cold_page-fix
      mm: remove __GFP_COLD
      mm, pagevec: rename pagevec drained field

Michal Hocko (6):
      Reverted "mm-mmu_notifier-avoid-double-notification-when-it-is-useless-checkpatch-fixes"
      Reverted "mm-sysctl-make-numa-stats-configurable-fix-fix"
      Reverted "mm-sysctl-make-numa-stats-configurable-fix"
      Reverted "mm, sysctl: make NUMA stats configurable"
      mm: drop migrate type checks from has_unmovable_pages
      mm, page_alloc: fail has_unmovable_pages when seeing reserved pages

Mike Kravetz (1):
      fs/hugetlbfs/inode.c: fix hwpoison reserve accounting

Mike Rapoport (1):
      userfaultfd: use mmgrab instead of open-coded increment of mm_count

Otto Ebeling (1):
      Unify migrate_pages and move_pages access checks

Vlastimil Babka (1):
      mm, page_alloc: simplify list handling in rmqueue_bulk()

weiping zhang (1):
      shmem: convert shmem_init_inodecache() to void
mm, sysctl: make NUMA stats configurable

This is the second step which introduces a tunable interface that allow
numa stats configurable for optimizing zone_statistics(), as suggested by
Dave Hansen and Ying Huang.

=========================================================================

When page allocation performance becomes a bottleneck and you can tolerate
some possible tool breakage and decreased numa counter precision, you can
do:

	echo 0 > /proc/sys/vm/numa_stat

In this case, numa counter update is ignored.  We can see about
*4.8%*(185->176) drop of cpu cycles per single page allocation and reclaim
on Jesper's page_bench01 (single thread) and *8.1%*(343->315) drop of cpu
cycles per single page allocation and reclaim on Jesper's page_bench03 (88
threads) running on a 2-Socket Broadwell-based server (88 threads, 126G
memory).

Benchmark link provided by Jesper D Brouer(increase loop times to
10000000):
https://github.com/netoptimizer/prototype-kernel/tree/master/kernel/mm/
bench

=========================================================================

When page allocation performance is not a bottleneck and you want all
tooling to work, you can do:

	echo 1 > /proc/sys/vm/numa_stat

This is system default setting.

Many thanks to Michal Hocko, Dave Hansen, Ying Huang and Vlastimil Babka
for comments to help improve the original patch.

Link: http://lkml.kernel.org/r/1508290927-8518-1-git-send-email-kemi.wang@intel.com
Signed-off-by: Kemi Wang <kemi.wang@intel.com>
Reported-by: Jesper Dangaard Brouer <brouer@redhat.com>
Suggested-by: Dave Hansen <dave.hansen@intel.com>
Suggested-by: Ying Huang <ying.huang@intel.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: "Luis R . Rodriguez" <mcgrof@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Christopher Lameter <cl@linux.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Tim Chen <tim.c.chen@intel.com>
Cc: Andi Kleen <andi.kleen@intel.com>
Cc: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
6 files changed