Skip to content

VM pageout scalability improvements

Rik van Riel linux-mm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest20 patches 38 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/20convert anon_vma list lock a read/write lockinclude/linux/rmap.h mm/migrate.c mm/mmap.c +1 more+20 -171 reply
2/20make the inode i_mmap_lock a reader/writer lockarch/x86/mm/hugetlbpage.c fs/hugetlbfs/inode.c fs/inode.c +13 more+115 -5613 replies
3/20move isolate_lru_page() to vmscan.cinclude/linux/migrate.h mm/internal.h mm/mempolicy.c +2 more+61 -421 reply
4/20free swap space on swap-in/activationinclude/linux/pagevec.h mm/swap.c mm/vmscan.c+26 -00 replies
5/20define page_file_cache() functioninclude/linux/mm_inline.h include/linux/page-flags.h mm/memory.c +4 more+38 -00 replies
6/20debugging checks for page_file_cache()include/linux/mm_inline.h mm/shmem.c+12 -20 replies
7/20Use an indexed array for LRU variablesinclude/linux/mm_inline.h include/linux/mmzone.h mm/page_alloc.c +3 more+109 -930 replies
8/20split LRU lists into anon & file setsdrivers/base/node.c fs/cifs/file.c fs/nfs/dir.c +20 more+532 -3590 replies
9/20split anon & file LRUs for memcontrol codeinclude/linux/memcontrol.h mm/memcontrol.c mm/vmscan.c+81 -1070 replies
10/20SEQ replacement for anonymous pagesinclude/linux/mm_inline.h include/linux/mmzone.h mm/page_alloc.c +2 more+82 -63 replies
11/20add newly swapped in pages to the inactive listmm/swap_state.c+1 -10 replies
12/20No Reclaim LRU Infrastructureinclude/linux/mm_inline.h include/linux/mmzone.h include/linux/page-flags.h +9 more+301 -280 replies
13/20Non-reclaimable page statisticsdrivers/base/node.c fs/proc/proc_misc.c mm/page_alloc.c +1 more+30 -10 replies
14/20Scan noreclaim list for reclaimable pagesdrivers/base/node.c include/linux/swap.h kernel/sysctl.c +1 more+171 -00 replies
15/20ramfs pages are non-reclaimablefs/ramfs/inode.c include/linux/pagemap.h mm/vmscan.c+27 -00 replies
16/20SHM_LOCKED pages are nonreclaimableinclude/linux/pagemap.h include/linux/swap.h mm/shmem.c +1 more+98 -190 replies
17/20non-reclaimable mlocked pagesinclude/linux/page-flags.h include/linux/rmap.h mm/Kconfig +7 more+483 -4515 replies
18/20mlock vma pages under mmap_sem held for readmm/internal.h mm/mlock.c+64 -120 replies
19/20handle mlocked pages during map/unmap and truncatemm/filemap.c mm/mmap.c mm/mremap.c +2 more+59 -90 replies
20/20account mlocked pagesdrivers/base/node.c fs/proc/proc_misc.c include/linux/mmzone.h +2 more+52 -130 replies

Reviews trailers per patch

2 of 20 patches have a Reviewed-by or Acked-by.

PatchChristoph Lameter
1/20R-b
2/20
3/20R-b
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/20] VM pageout scalability improvements

On large memory systems, the VM can spend way too much time scanning through pages that it cannot (or should not) evict from memory. Not only does it use up CPU time, but it also provokes lock contention and can leave large systems under memory presure in a catatonic state.

This patch series improves VM scalability by:

1) making the locking a little more scalable

2) putting filesystem backed, swap backed and non-reclaimable pages onto their own LRUs, so the system only scans the pages that it can/should evict from memory

3) switching to SEQ replacement for the anonymous LRUs, so the number of pages that need to be scanned when the system starts swapping is bound to a reasonable number

The noreclaim patches come verbatim from Lee Schermerhorn and Nick Piggin. I have not taken a detailed look at them yet and all I have done is fix the rejects against the latest -mm kernel.

I am posting this series now because I would like to get more feedback, while I am studying and improving the noreclaim patches myself.

Signature · 7 lines
All Rights Reversed

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>