On 7/21/20 2:05 PM, Matthew Wilcox wrote: > On Tue, Jul 21, 2020 at 12:28:49PM +0900, js1304@xxxxxxxxx wrote: >> +static inline unsigned int current_alloc_flags(gfp_t gfp_mask, >> + unsigned int alloc_flags) >> +{ >> +#ifdef CONFIG_CMA >> + unsigned int pflags = current->flags; >> + >> + if (!(pflags & PF_MEMALLOC_NOCMA) && >> + gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE) >> + alloc_flags |= ALLOC_CMA; > > Please don't indent by one tab when splitting a line because it looks like > the second line and third line are part of the same block. Either do > this: > > if (!(pflags & PF_MEMALLOC_NOCMA) && > gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE) > alloc_flags |= ALLOC_CMA; > > or this: > if (!(pflags & PF_MEMALLOC_NOCMA) && > gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE) > alloc_flags |= ALLOC_CMA; Ah, good point. >> @@ -4619,8 +4631,10 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, >> wake_all_kswapds(order, gfp_mask, ac); >> >> reserve_flags = __gfp_pfmemalloc_flags(gfp_mask); >> - if (reserve_flags) >> + if (reserve_flags) { >> alloc_flags = reserve_flags; >> + alloc_flags = current_alloc_flags(gfp_mask, alloc_flags); >> + } > > Is this right? Shouldn't you be passing reserve_flags to > current_alloc_flags() here? Also, there's no need to add { } here. Note the "alloc_flags = reserve_flags;" line is not being deleted here. But if it was, your points would be true, and yeah it would be a bit more tidy.