Re: [PATCH] zsmalloc: drop unused member 'mapping_area->huge'
From: Sergey Senozhatsky
Date: Tue Feb 16 2016 - 21:25:19 EST
Hello,
On (02/17/16 09:56), YiPing Xu wrote:
> static int create_handle_cache(struct zs_pool *pool)
> @@ -1127,11 +1126,9 @@ static void __zs_unmap_object(struct mapping_area *area,
> goto out;
>
> buf = area->vm_buf;
> - if (!area->huge) {
> - buf = buf + ZS_HANDLE_SIZE;
> - size -= ZS_HANDLE_SIZE;
> - off += ZS_HANDLE_SIZE;
> - }
> + buf = buf + ZS_HANDLE_SIZE;
> + size -= ZS_HANDLE_SIZE;
> + off += ZS_HANDLE_SIZE;
>
> sizes[0] = PAGE_SIZE - off;
> sizes[1] = size - sizes[0];
hm, indeed.
shouldn't it depend on class->huge?
void *zs_map_object()
{
void *ret = __zs_map_object(area, pages, off, class->size);
if (!class->huge)
ret += ZS_HANDLE_SIZE; /* area->vm_buf + ZS_HANDLE_SIZE */
return ret;
}
static void __zs_unmap_object(struct mapping_area *area...)
{
char *buf = area->vm_buf;
/* handle is in page->private for class->huge */
buf = buf + ZS_HANDLE_SIZE;
size -= ZS_HANDLE_SIZE;
off += ZS_HANDLE_SIZE;
memcpy(..);
}
-ss