diff options
author | Sergey Senozhatsky <sergey.senozhatsky@gmail.com> | 2015-09-08 15:04:38 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-09-08 15:35:28 -0700 |
commit | 860c707dca155a56dfa115ddd6c00959296144a6 (patch) | |
tree | e46b5110aa65f7b75ed8c8b6e5fa97367f10c05a /include/linux/zsmalloc.h | |
parent | 7d3f3938236b4bb878214e6791e76fd8409bdeee (diff) | |
download | linux-stable-860c707dca155a56dfa115ddd6c00959296144a6.tar.gz linux-stable-860c707dca155a56dfa115ddd6c00959296144a6.tar.bz2 linux-stable-860c707dca155a56dfa115ddd6c00959296144a6.zip |
zsmalloc: account the number of compacted pages
Compaction returns back to zram the number of migrated objects, which is
quite uninformative -- we have objects of different sizes so user space
cannot obtain any valuable data from that number. Change compaction to
operate in terms of pages and return back to compaction issuer the
number of pages that were freed during compaction. So from now on we
will export more meaningful value in zram<id>/mm_stat -- the number of
freed (compacted) pages.
This requires:
(a) a rename of `num_migrated' to 'pages_compacted'
(b) a internal API change -- return first_page's fullness_group from
putback_zspage(), so we know when putback_zspage() did
free_zspage(). It helps us to account compaction stats correctly.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/zsmalloc.h')
-rw-r--r-- | include/linux/zsmalloc.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/zsmalloc.h b/include/linux/zsmalloc.h index ad3d23239043..6398dfae53f1 100644 --- a/include/linux/zsmalloc.h +++ b/include/linux/zsmalloc.h @@ -35,8 +35,8 @@ enum zs_mapmode { }; struct zs_pool_stats { - /* How many objects were migrated */ - unsigned long num_migrated; + /* How many pages were migrated (freed) */ + unsigned long pages_compacted; }; struct zs_pool; |