diff options
| author | Minchan Kim <[email protected]> | 2013-07-03 15:01:24 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2013-07-03 16:07:26 -0700 |
| commit | b430e9d1c6d416306d44dbf3aa3148be7af78abc (patch) | |
| tree | 6227c913d4ffec2cab3149495ed5e8f72946562c /tools/perf/scripts/python | |
| parent | ffbdccf5e1facd18b54429a749667fb185c10f20 (diff) | |
mm: remove compressed copy from zram in-memory
Swap subsystem does lazy swap slot free with expecting the page would be
swapped out again so we can avoid unnecessary write.
But the problem in in-memory swap(ex, zram) is that it consumes memory
space until vm_swap_full(ie, used half of all of swap device) condition
meet. It could be bad if we use multiple swap device, small in-memory
swap and big storage swap or in-memory swap alone.
This patch makes swap subsystem free swap slot as soon as swap-read is
completed and make the swapcache page dirty so the page should be
written out the swap device to reclaim it. It means we never lose it.
I tested this patch with kernel compile workload.
1. before
compile time : 9882.42
zram max wasted space by fragmentation: 13471881 byte
memory space consumed by zram: 174227456 byte
the number of slot free notify: 206684
2. after
compile time : 9653.90
zram max wasted space by fragmentation: 11805932 byte
memory space consumed by zram: 154001408 byte
the number of slot free notify: 426972
[[email protected]: tweak comment text]
[[email protected]: fix BUG due to non-swapcache pages in end_swap_bio_read()]
[[email protected]: invert unlikely() test, augment comment, 80-col cleanup]
Signed-off-by: Dan Magenheimer <[email protected]>
Signed-off-by: Minchan Kim <[email protected]>
Signed-off-by: Artem Savkov <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Seth Jennings <[email protected]>
Cc: Nitin Gupta <[email protected]>
Cc: Konrad Rzeszutek Wilk <[email protected]>
Cc: Shaohua Li <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions