summaryrefslogtreecommitdiffstats
path: root/scripts/mkversion
diff options
context:
space:
mode:
authorMinchan Kim <minchan@kernel.org>2015-04-16 01:15:30 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-16 01:35:20 +0200
commit312fcae227037619dc858c9ccd362c7b847730a2 (patch)
treedc20f7720c297cc0426f039c71794e378d885007 /scripts/mkversion
parentzsmalloc: factor out obj_[malloc|free] (diff)
downloadlinux-312fcae227037619dc858c9ccd362c7b847730a2.tar.xz
linux-312fcae227037619dc858c9ccd362c7b847730a2.zip
zsmalloc: support compaction
This patch provides core functions for migration of zsmalloc. Migraion policy is simple as follows. for each size class { while { src_page = get zs_page from ZS_ALMOST_EMPTY if (!src_page) break; dst_page = get zs_page from ZS_ALMOST_FULL if (!dst_page) dst_page = get zs_page from ZS_ALMOST_EMPTY if (!dst_page) break; migrate(from src_page, to dst_page); } } For migration, we need to identify which objects in zspage are allocated to migrate them out. We could know it by iterating of freed objects in a zspage because first_page of zspage keeps free objects singly-linked list but it's not efficient. Instead, this patch adds a tag(ie, OBJ_ALLOCATED_TAG) in header of each object(ie, handle) so we could check whether the object is allocated easily. This patch adds another status bit in handle to synchronize between user access through zs_map_object and migration. During migration, we cannot move objects user are using due to data coherency between old object and new object. [akpm@linux-foundation.org: zsmalloc.c needs sched.h for cond_resched()] Signed-off-by: Minchan Kim <minchan@kernel.org> Cc: Juneho Choi <juno.choi@lge.com> Cc: Gunho Lee <gunho.lee@lge.com> Cc: Luigi Semenzato <semenzato@google.com> Cc: Dan Streetman <ddstreet@ieee.org> Cc: Seth Jennings <sjennings@variantweb.net> Cc: Nitin Gupta <ngupta@vflare.org> Cc: Jerome Marchand <jmarchan@redhat.com> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts/mkversion')
0 files changed, 0 insertions, 0 deletions