Skip to content

Commit

Permalink
staging: zcache: introduce zero filled pages handler
Browse files Browse the repository at this point in the history
Introduce zero-filled pages handler to capture and handle zero pages.

Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Wanpeng Li authored and Greg Kroah-Hartman committed Mar 19, 2013
1 parent ad3c025 commit dcb4e2d
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions drivers/staging/zcache/zcache-main.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,32 @@ static void zcache_obj_free(struct tmem_obj *obj, struct tmem_pool *pool)
kmem_cache_free(zcache_obj_cache, obj);
}

static bool page_is_zero_filled(void *ptr)
{
unsigned int pos;
unsigned long *page;

page = (unsigned long *)ptr;

for (pos = 0; pos < PAGE_SIZE / sizeof(*page); pos++) {
if (page[pos])
return false;
}

return true;
}

static void handle_zero_filled_page(void *page)
{
void *user_mem;

user_mem = kmap_atomic(page);
memset(user_mem, 0, PAGE_SIZE);
kunmap_atomic(user_mem);

flush_dcache_page(page);
}

static struct tmem_hostops zcache_hostops = {
.obj_alloc = zcache_obj_alloc,
.obj_free = zcache_obj_free,
Expand Down

0 comments on commit dcb4e2d

Please sign in to comment.