summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/admin-guide/cgroup-v1/memory.rst19
-rw-r--r--Documentation/admin-guide/kernel-parameters.txt40
-rw-r--r--Documentation/admin-guide/mm/hugetlbpage.rst35
-rw-r--r--Documentation/admin-guide/mm/transhuge.rst7
-rw-r--r--Documentation/admin-guide/sysctl/vm.rst23
-rw-r--r--Documentation/core-api/padata.rst41
-rw-r--r--Documentation/features/vm/numa-memblock/arch-support.txt34
-rw-r--r--Documentation/vm/memory-model.rst9
-rw-r--r--Documentation/vm/page_owner.rst3
-rw-r--r--arch/alpha/mm/init.c16
-rw-r--r--arch/alpha/mm/numa.c22
-rw-r--r--arch/arc/include/asm/hugepage.h2
-rw-r--r--arch/arc/mm/init.c41
-rw-r--r--arch/arm/include/asm/hugetlb.h7
-rw-r--r--arch/arm/include/asm/pgtable-3level.h2
-rw-r--r--arch/arm/mm/init.c66
-rw-r--r--arch/arm64/Kconfig2
-rw-r--r--arch/arm64/Kconfig.debug29
-rw-r--r--arch/arm64/include/asm/hugetlb.h13
-rw-r--r--arch/arm64/include/asm/pgtable.h2
-rw-r--r--arch/arm64/mm/hugetlbpage.c30
-rw-r--r--arch/arm64/mm/init.c56
-rw-r--r--arch/arm64/mm/numa.c9
-rw-r--r--arch/c6x/mm/init.c8
-rw-r--r--arch/csky/kernel/setup.c26
-rw-r--r--arch/h8300/mm/init.c6
-rw-r--r--arch/hexagon/mm/init.c6
-rw-r--r--arch/ia64/Kconfig1
-rw-r--r--arch/ia64/include/asm/hugetlb.h5
-rw-r--r--arch/ia64/mm/contig.c2
-rw-r--r--arch/ia64/mm/discontig.c2
-rw-r--r--arch/m68k/mm/init.c6
-rw-r--r--arch/m68k/mm/mcfmmu.c9
-rw-r--r--arch/m68k/mm/motorola.c15
-rw-r--r--arch/m68k/mm/sun3mmu.c10
-rw-r--r--arch/microblaze/Kconfig1
-rw-r--r--arch/microblaze/mm/init.c2
-rw-r--r--arch/mips/Kconfig1
-rw-r--r--arch/mips/include/asm/hugetlb.h11
-rw-r--r--arch/mips/include/asm/pgtable.h2
-rw-r--r--arch/mips/loongson64/numa.c2
-rw-r--r--arch/mips/mm/init.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-memory.c2
-rw-r--r--arch/nds32/mm/init.c11
-rw-r--r--arch/nios2/mm/init.c8
-rw-r--r--arch/openrisc/mm/init.c9
-rw-r--r--arch/parisc/include/asm/hugetlb.h10
-rw-r--r--arch/parisc/mm/init.c22
-rw-r--r--arch/powerpc/Kconfig10
-rw-r--r--arch/powerpc/include/asm/book3s/64/pgtable.h4
-rw-r--r--arch/powerpc/include/asm/hugetlb.h5
-rw-r--r--arch/powerpc/mm/hugetlbpage.c30
-rw-r--r--arch/powerpc/mm/mem.c2
-rw-r--r--arch/riscv/Kconfig2
-rw-r--r--arch/riscv/include/asm/hugetlb.h10
-rw-r--r--arch/riscv/include/asm/ptdump.h11
-rw-r--r--arch/riscv/mm/hugetlbpage.c24
-rw-r--r--arch/riscv/mm/init.c5
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/include/asm/hugetlb.h8
-rw-r--r--arch/s390/mm/hugetlbpage.c24
-rw-r--r--arch/s390/mm/init.c2
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sh/include/asm/hugetlb.h7
-rw-r--r--arch/sh/mm/init.c2
-rw-r--r--arch/sparc/Kconfig10
-rw-r--r--arch/sparc/include/asm/hugetlb.h10
-rw-r--r--arch/sparc/mm/init_32.c1
-rw-r--r--arch/sparc/mm/init_64.c45
-rw-r--r--arch/sparc/mm/srmmu.c21
-rw-r--r--arch/um/kernel/mem.c12
-rw-r--r--arch/unicore32/include/asm/memory.h2
-rw-r--r--arch/unicore32/include/mach/memory.h6
-rw-r--r--arch/unicore32/kernel/pci.c14
-rw-r--r--arch/unicore32/mm/init.c43
-rw-r--r--arch/x86/Kconfig11
-rw-r--r--arch/x86/Kconfig.debug27
-rw-r--r--arch/x86/include/asm/hugetlb.h10
-rw-r--r--arch/x86/include/asm/pgtable.h2
-rw-r--r--arch/x86/mm/hugetlbpage.c23
-rw-r--r--arch/x86/mm/init.c2
-rw-r--r--arch/x86/mm/init_64.c12
-rw-r--r--arch/x86/mm/kmmio.c2
-rw-r--r--arch/x86/mm/numa.c11
-rw-r--r--arch/xtensa/mm/init.c8
-rw-r--r--drivers/base/memory.c44
-rw-r--r--drivers/gpu/drm/i915/gem/i915_gem_userptr.c22
-rw-r--r--fs/cifs/file.c10
-rw-r--r--fs/fuse/dev.c2
-rw-r--r--fs/hugetlbfs/inode.c67
-rw-r--r--include/asm-generic/hugetlb.h2
-rw-r--r--include/linux/compaction.h9
-rw-r--r--include/linux/gfp.h7
-rw-r--r--include/linux/hugetlb.h16
-rw-r--r--include/linux/memblock.h15
-rw-r--r--include/linux/memcontrol.h66
-rw-r--r--include/linux/mm.h48
-rw-r--r--include/linux/mmzone.h46
-rw-r--r--include/linux/padata.h43
-rw-r--r--include/linux/string.h60
-rw-r--r--include/linux/swap.h11
-rw-r--r--include/linux/vm_event_item.h4
-rw-r--r--include/linux/vmstat.h2
-rw-r--r--include/trace/events/compaction.h22
-rw-r--r--include/trace/events/huge_memory.h3
-rw-r--r--include/trace/events/vmscan.h14
-rw-r--r--init/Kconfig17
-rw-r--r--init/main.c2
-rw-r--r--kernel/events/uprobes.c10
-rw-r--r--kernel/padata.c277
-rw-r--r--kernel/sysctl.c3
-rw-r--r--lib/test_kasan.c29
-rw-r--r--mm/Kconfig9
-rw-r--r--mm/Kconfig.debug32
-rw-r--r--mm/compaction.c70
-rw-r--r--mm/filemap.c43
-rw-r--r--mm/gup.c191
-rw-r--r--mm/huge_memory.c270
-rw-r--r--mm/hugetlb.c208
-rw-r--r--mm/internal.h23
-rw-r--r--mm/khugepaged.c262
-rw-r--r--mm/memblock.c19
-rw-r--r--mm/memcontrol.c532
-rw-r--r--mm/memory.c52
-rw-r--r--mm/memory_hotplug.c10
-rw-r--r--mm/mempolicy.c5
-rw-r--r--mm/migrate.c20
-rw-r--r--mm/oom_kill.c4
-rw-r--r--mm/page_alloc.c589
-rw-r--r--mm/page_owner.c7
-rw-r--r--mm/pgtable-generic.c2
-rw-r--r--mm/rmap.c53
-rw-r--r--mm/shmem.c110
-rw-r--r--mm/slab.c4
-rw-r--r--mm/slub.c8
-rw-r--r--mm/swap.c135
-rw-r--r--mm/swap_cgroup.c6
-rw-r--r--mm/swap_state.c104
-rw-r--r--mm/swapfile.c25
-rw-r--r--mm/userfaultfd.c5
-rw-r--r--mm/vmscan.c278
-rw-r--r--mm/vmstat.c16
-rw-r--r--mm/workingset.c21
-rw-r--r--tools/testing/selftests/vm/.gitignore1
-rw-r--r--tools/testing/selftests/vm/Makefile1
-rw-r--r--tools/testing/selftests/vm/khugepaged.c1035
-rw-r--r--tools/vm/page_owner_sort.c5
147 files changed, 3443 insertions, 2670 deletions
diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
index 0ae4f564c2d6..12757e63b26c 100644
--- a/Documentation/admin-guide/cgroup-v1/memory.rst
+++ b/Documentation/admin-guide/cgroup-v1/memory.rst
@@ -199,11 +199,11 @@ An RSS page is unaccounted when it's fully unmapped. A PageCache page is
unaccounted when it's removed from radix-tree. Even if RSS pages are fully
unmapped (by kswapd), they may exist as SwapCache in the system until they
are really freed. Such SwapCaches are also accounted.
-A swapped-in page is not accounted until it's mapped.
+A swapped-in page is accounted after adding into swapcache.
Note: The kernel does swapin-readahead and reads multiple swaps at once.
-This means swapped-in pages may contain pages for other tasks than a task
-causing page fault. So, we avoid accounting at swap-in I/O.
+Since page's memcg recorded into swap whatever memsw enabled, the page will
+be accounted after swapin.
At page migration, accounting information is kept.
@@ -222,18 +222,13 @@ the cgroup that brought it in -- this will happen on memory pressure).
But see section 8.2: when moving a task to another cgroup, its pages may
be recharged to th