[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160217022552.GB535@swordfish>
Date: Wed, 17 Feb 2016 11:26:29 +0900
From: Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>
To: YiPing Xu <xuyiping@...wei.com>
Cc: minchan@...nel.org, ngupta@...are.org,
sergey.senozhatsky.work@...il.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, suzhuangluan@...ilicon.com,
puck.chen@...ilicon.com, dan.zhao@...ilicon.com
Subject: Re: [PATCH] zsmalloc: drop unused member 'mapping_area->huge'
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
Powered by blists - more mailing lists