Re: [PATCH v2 3/3] zram: pass gfp from zcomp frontend to backend

From: Sergey Senozhatsky
Date: Thu Nov 26 2015 - 21:04:22 EST


Hello,

Minchan Kim wrote:
[..]
> +static struct zcomp_strm *zcomp_strm_alloc(struct zcomp *comp, gfp_t flags)
> {
> + zstrm = zcomp_strm_alloc(comp, GFP_NOIO|__GFP_NORETRY|
> + __GFP_NOWARN|__GFP_NOMEMALLOC);


and it seems that after 3/3 (v2) we also lost GFP_ZERO for private
allocation. kzalloc->kmalloc, and no explicit __GFP_ZERO for __vmalloc().


> - ret = kzalloc(LZ4_MEM_COMPRESS, GFP_NOIO|__GFP_NORETRY|
> - __GFP_NOWARN|__GFP_NOMEMALLOC);
> + ret = kmalloc(LZ4_MEM_COMPRESS, flags);
^^^ here
> if (!ret)
> - ret = __vmalloc(LZ4_MEM_COMPRESS, GFP_NOIO|__GFP_NORETRY|
> - __GFP_NOWARN|__GFP_NOMEMALLOC|
> - __GFP_ZERO,
> - PAGE_KERNEL);
> + ret = __vmalloc(LZ4_MEM_COMPRESS, flags, PAGE_KERNEL);
^^^ here


> - ret = kzalloc(LZO1X_MEM_COMPRESS, GFP_NOIO|__GFP_NORETRY|
> - __GFP_NOWARN|__GFP_NOMEMALLOC);
> +
> + ret = kmalloc(LZO1X_MEM_COMPRESS, flags);
^^^ ditto
> if (!ret)
> - ret = __vmalloc(LZO1X_MEM_COMPRESS, GFP_NOIO|__GFP_NORETRY|
> - __GFP_NOWARN|__GFP_NOMEMALLOC|
> - __GFP_ZERO,
> - PAGE_KERNEL);
> + ret = __vmalloc(LZO1X_MEM_COMPRESS, flags, PAGE_KERNEL);
^^^ ditto


so lz*_create() should look like

---

static void *lzo_create(gfp_t flags)
{
void *ret;

ret = kzalloc(LZO1X_MEM_COMPRESS, flags);
if (!ret)
ret = __vmalloc(LZO1X_MEM_COMPRESS,
flags | __GFP_ZERO | __GFP_HIGHMEM,
PAGE_KERNEL);
return ret;
}

---


I have a patchset with my nitpicks addressed and fix-ups for missing gfps.
Do you mind me to send it out?

-ss
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/