Re: [PATCH mm-unstable v2 1/3] mm/contig_alloc: support __GFP_COMP
From: Matthew Wilcox
Date: Thu Aug 22 2024 - 14:42:38 EST
On Thu, Aug 22, 2024 at 11:23:04AM -0600, Yu Zhao wrote:
> Andrew, could you patch up the line above? This is what it's supposed
> to check:
>
> diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> index 59266df56aeb..03ba9563c6db 100644
> --- a/include/linux/gfp.h
> +++ b/include/linux/gfp.h
> @@ -452,7 +452,7 @@ static inline struct folio *folio_alloc_gigantic_noprof(int order, gfp_t gfp,
> {
> struct page *page;
>
> - if (WARN_ON(!order || !(gfp | __GFP_COMP)))
> + if (WARN_ON(!order || !(gfp & __GFP_COMP)))
> return NULL;
I don't think we should do this at all. Just this should be enough:
gfp |= __GFP_COMP;
same as folio_alloc() (or now folio_alloc_noprof()).
Do we really caree if somebody tries to allocate a gigantic page with an
order of 0? It's weird, but would work, so I don't see the need for the
warning.
> page = alloc_contig_pages_noprof(1 << order, gfp, nid, node);
>