Thread (21 messages) 21 messages, 6 authors, 2014-07-08

[PATCH v10 0/7] MADV_FREE support

flat view
STALE4494d SUPERSEDED

From: Minchan Kim <hidden>
Date: 2014-07-07 00:52:28
Also in: linux-mm, lkml
Subsystem: arm64 port (aarch64 architecture), generic include/asm header files, linux for powerpc (32-bit and 64-bit), memory management, memory management - core, memory management - mglru (multi-gen lru), memory management - reclaim, memory management - rmap (reverse mapping), memory management - thp (transparent huge page), memory mapping - madvise (memory advice), s390 architecture, s390 mm, sparc + ultrasparc (sparc/sparc64), the rest, x86 architecture (32-bit and 64-bit) · Maintainers: Catalin Marinas, Will Deacon, Arnd Bergmann, Madhavan Srinivasan, Andrew Morton, David Hildenbrand, Johannes Weiner, Lorenzo Stoakes, Liam R. Howlett, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Gerald Schaefer, "David S. Miller", Andreas Larsson, Linus Torvalds, Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen

Status: Superseded by v17 (posted 2014-10-20). [go to v17]

Revision v10 (8 revisions archived).

Revisions (8)
This patch enable MADV_FREE hint for madvise syscall, which have
been supported by other OSes. [PATCH 1] includes the details.

[1] support MADVISE_FREE for !THP page so if VM encounter
THP page in syscall context, it splits THP page.
[2-6] is to preparing to call madvise syscall without THP plitting
[7] enable THP page support for MADV_FREE.

* From v9
 * Add Acked-by - Rik
 * Add THP page support - Kirill
 * Rebased-on v3.16-rc3-mmotm-2014-07-02-15-07

* From v8
 * Rebased-on v3.16-rc2-mmotm-2014-06-25-16-44

* From v7
 * Rebased-on next-20140613

* From v6
 * Remove page from swapcache in syscal time
 * Move utility functions from memory.c to madvise.c - Johannes
 * Rename untilify functtions - Johannes
 * Remove unnecessary checks from vmscan.c - Johannes
 * Rebased-on v3.15-rc5-mmotm-2014-05-16-16-56
 * Drop Reviewe-by because there was some changes since then.

* From v5
 * Fix PPC problem which don't flush TLB - Rik
 * Remove unnecessary lazyfree_range stub function - Rik
 * Rebased on v3.15-rc5

* From v4
 * Add Reviewed-by: Zhang Yanfei
 * Rebase on v3.15-rc1-mmotm-2014-04-15-16-14

* From v3
 * Add "how to work part" in description - Zhang
 * Add page_discardable utility function - Zhang
 * Clean up

* From v2
 * Remove forceful dirty marking of swap-readed page - Johannes
 * Remove deactivation logic of lazyfreed page
 * Rebased on 3.14
 * Remove RFC tag

* From v1
 * Use custom page table walker for madvise_free - Johannes
 * Remove PG_lazypage flag - Johannes
 * Do madvise_dontneed instead of madvise_freein swapless system


Minchan Kim (7):
  [1] mm: support madvise(MADV_FREE)
  [2] x86: add pmd_[dirty|mkclean] for THP
  [3] sparc: add pmd_[dirty|mkclean] for THP
  [4] powerpc: add pmd_[dirty|mkclean] for THP
  [5] s390: add pmd_[dirty|mkclean] for THP
  [6] ARM: add pmd_[dirty|mkclean] for THP
  [7] mm: Don't split THP page when syscall is called

 arch/arm64/include/asm/pgtable.h         |   2 +
 arch/powerpc/include/asm/pgtable-ppc64.h |   2 +
 arch/s390/include/asm/pgtable.h          |  12 ++
 arch/sparc/include/asm/pgtable_64.h      |  16 +++
 arch/x86/include/asm/pgtable.h           |  10 ++
 include/linux/huge_mm.h                  |   3 +
 include/linux/rmap.h                     |   8 +-
 include/linux/vm_event_item.h            |   1 +
 include/uapi/asm-generic/mman-common.h   |   1 +
 mm/huge_memory.c                         |  25 ++++
 mm/madvise.c                             | 189 +++++++++++++++++++++++++++++++
 mm/rmap.c                                |  38 ++++++-
 mm/vmscan.c                              |  57 +++++++---
 mm/vmstat.c                              |   1 +
 14 files changed, 348 insertions(+), 17 deletions(-)

-- 
2.0.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help