Re: [PATCH 17/17] jbd2: get rid of superfluous __GFP_REPEAT

From: Jan Kara
Date: Mon May 30 2016 - 09:09:10 EST


On Mon 30-05-16 11:14:59, Michal Hocko wrote:
> From: Michal Hocko <mhocko@xxxxxxxx>
>
> jbd2_alloc is explicit about its allocation preferences wrt. the
> allocation size. Sub page allocations go to the slab allocator
> and larger are using either the page allocator or vmalloc. This
> is all good but the logic is unnecessarily complex.
> 1) as per Ted, the vmalloc fallback is a left-over:
> : jbd2_alloc is only passed in the bh->b_size, which can't be >
> : PAGE_SIZE, so the code path that calls vmalloc() should never get
> : called. When we conveted jbd2_alloc() to suppor sub-page size
> : allocations in commit d2eecb039368, there was an assumption that it
> : could be called with a size greater than PAGE_SIZE, but that's
> : certaily not true today.
> Moreover vmalloc allocation might even lead to a deadlock because
> the callers expect GFP_NOFS context while vmalloc is GFP_KERNEL.
>
> 2) __GFP_REPEAT for requests <= PAGE_ALLOC_COSTLY_ORDER is ignored
> since the flag was introduced.
>
> Let's simplify the code flow and use the slab allocator for sub-page
> requests and the page allocator for others. Even though order > 0 is
> not currently used as per above leave that option open.
>
> Cc: "Theodore Ts'o" <tytso@xxxxxxx>
> Cc: Jan Kara <jack@xxxxxxx>
> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>

The patch looks good. You can add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Since the patch is in pretty stable parts of JBD2 I think it is fine to
merge it through Andrew's tree with the rest of the series.

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR