All of lore.kernel.org
 help / color / mirror / Atom feed
From: Colin Ian King <colin.king@canonical.com>
To: Mel Gorman <mgorman@techsingularity.net>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Linux-MM <linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm/page_alloc: Add a bulk page allocator -fix -fix
Date: Tue, 30 Mar 2021 12:51:25 +0100	[thread overview]
Message-ID: <f02d1024-5201-a065-5815-4216b5d0fe1f@canonical.com> (raw)
In-Reply-To: <20210330114847.GX3697@techsingularity.net>

On 30/03/2021 12:48, Mel Gorman wrote:
> Colin Ian King reported the following problem (slightly edited)
> 
> 	Author: Mel Gorman <mgorman@techsingularity.net>
> 	Date:   Mon Mar 29 11:12:24 2021 +1100
> 
> 	    mm/page_alloc: add a bulk page allocator
> 
> 	...
> 
> 	Static analysis on linux-next with Coverity has found a potential
> 	uninitialized variable issue in function __alloc_pages_bulk with
> 	the following commit:
> 
> 	...
> 
> 	    Uninitialized scalar variable (UNINIT)
> 	    15. uninit_use_in_call: Using uninitialized value alloc_flags when
> 	        calling prepare_alloc_pages.
> 
> 	5056        if (!prepare_alloc_pages(gfp, 0, preferred_nid, nodemask,
> 						&ac, &alloc_gfp, &alloc_flags))
> 
> The problem is that prepare_alloc_flags only updates alloc_flags
> which must have a valid initial value. The appropriate initial value is
> ALLOC_WMARK_LOW to avoid the bulk allocator pushing a zone below the low
> watermark without waking kswapd assuming the GFP mask allows kswapd to
> be woken.
> 
> This is a second fix to the mmotm patch
> mm-page_alloc-add-a-bulk-page-allocator.patch . It will cause a mild conflict
> with a later patch due to renaming of an adjacent variable that is trivially
> resolved. I can post a full series with the fixes merged if that is preferred.
> 
> Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
> ---
>  mm/page_alloc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 92d55f80c289..dabef0b910c9 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -4990,7 +4990,7 @@ unsigned long __alloc_pages_bulk(gfp_t gfp, int preferred_nid,
>  	struct list_head *pcp_list;
>  	struct alloc_context ac;
>  	gfp_t alloc_gfp;
> -	unsigned int alloc_flags;
> +	unsigned int alloc_flags = ALLOC_WMARK_LOW;
>  	int allocated = 0;
>  
>  	if (WARN_ON_ONCE(nr_pages <= 0))
> 

Thanks Mel, that definitely fixes the issue.

Reviewed-by: Colin Ian King <colin.king@canonical.com>

      reply	other threads:[~2021-03-30 11:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30 11:48 [PATCH] mm/page_alloc: Add a bulk page allocator -fix -fix Mel Gorman
2021-03-30 11:51 ` Colin Ian King [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f02d1024-5201-a065-5815-4216b5d0fe1f@canonical.com \
    --to=colin.king@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.