On Mon 30-05-16 11:14:59, Michal Hocko wrote:
> From: Michal Hocko <[email protected]>
> 
> 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" <[email protected]>
> Cc: Jan Kara <[email protected]>
> Signed-off-by: Michal Hocko <[email protected]>

The patch looks good. You can add:

Reviewed-by: Jan Kara <[email protected]>

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 <[email protected]>
SUSE Labs, CR

Reply via email to