diff options
author | Minchan Kim <minchan@kernel.org> | 2016-07-26 15:23:23 -0700 |
---|---|---|
committer | Vinayak Menon <vinmenon@codeaurora.org> | 2017-02-21 12:40:57 +0530 |
commit | a1fbfa18551f1f4198211c6f9e004cd295485aca (patch) | |
tree | bffd973a23f96a34541188ea3aee5c1020e0a015 /mm/compaction.c | |
parent | cb9bdb98f4dbcfd360482b54f70f5bb7bcd319c2 (diff) |
zsmalloc: introduce zspage structure
We have squeezed meta data of zspage into first page's descriptor. So,
to get meta data from subpage, we should get first page first of all.
But it makes trouble to implment page migration feature of zsmalloc
because any place where to get first page from subpage can be raced with
first page migration. IOW, first page it got could be stale. For
preventing it, I have tried several approahces but it made code
complicated so finally, I concluded to separate metadata from first
page. Of course, it consumes more memory. IOW, 16bytes per zspage on
32bit at the moment. It means we lost 1% at *worst case*(40B/4096B)
which is not bad I think at the cost of maintenance.
Link: http://lkml.kernel.org/r/1464736881-24886-9-git-send-email-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Git-commit: 3783689a1aa82ef27a6418b043dd7a077b8330c5
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: I2f0c67d7b85ebfe0655b92e13854fdbde5f26f2b
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Diffstat (limited to 'mm/compaction.c')
-rw-r--r-- | mm/compaction.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/mm/compaction.c b/mm/compaction.c index fbfdd84f615f..87ed50835881 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -15,7 +15,6 @@ #include <linux/backing-dev.h> #include <linux/sysctl.h> #include <linux/sysfs.h> -#include <linux/balloon_compaction.h> #include <linux/page-isolation.h> #include <linux/kasan.h> #include <linux/kthread.h> |