Re: [v2 PATCH 2/2] mm: don't warn if the node is offlined

From: Michal Hocko
Date: Fri Nov 04 2022 - 05:56:14 EST


On Fri 04-11-22 10:35:21, Michal Hocko wrote:
[...]
> diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> index ef4aea3b356e..308daafc4871 100644
> --- a/include/linux/gfp.h
> +++ b/include/linux/gfp.h
> @@ -227,7 +227,10 @@ static inline
> struct folio *__folio_alloc_node(gfp_t gfp, unsigned int order, int nid)
> {
> VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES);
> - VM_WARN_ON((gfp & __GFP_THISNODE) && !node_online(nid));
> + if((gfp & __GFP_THISNODE) && !node_online(nid)) {

or maybe even better
if ((gfp & (__GFP_THISNODE|__GFP_NOWARN) == __GFP_THISNODE|__GFP_NOWARN) && !node_online(nid))

because it doesn't really make much sense to dump this information if
the allocation failure is going to provide sufficient (and even more
comprehensive) context for the failure. It looks more hairy but this can
be hidden in a nice little helper shared between the two callers.

> + pr_warn("%pGg allocation from offline node %d\n", &gfp, nid);
> + dump_stack();
> + }
>
> return __folio_alloc(gfp, order, nid, NULL);
> }
> --
> Michal Hocko
> SUSE Labs

--
Michal Hocko
SUSE Labs