From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50E1EC433F5 for ; Sat, 25 Dec 2021 05:54:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD6936B007B; Sat, 25 Dec 2021 00:54:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B86366B007E; Sat, 25 Dec 2021 00:54:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4E8D6B0081; Sat, 25 Dec 2021 00:54:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0137.hostedemail.com [216.40.44.137]) by kanga.kvack.org (Postfix) with ESMTP id 94C586B007B for ; Sat, 25 Dec 2021 00:54:07 -0500 (EST) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 45F27181AC9C6 for ; Sat, 25 Dec 2021 05:54:07 +0000 (UTC) X-FDA: 78955250934.21.0F5593A Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf15.hostedemail.com (Postfix) with ESMTP id 13DE2A0047 for ; Sat, 25 Dec 2021 05:53:57 +0000 (UTC) Received: by mail-pj1-f42.google.com with SMTP id b1-20020a17090a990100b001b14bd47532so9914594pjp.0 for ; Fri, 24 Dec 2021 21:54:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=xGL5DCtywrgA9gA0wQaLdXwTlM4BhcumR5fKoiJ4h1o=; b=DRrT5d1LHWwNi0/QWomg1aUMv+ZZG6l4oKuxv0Y6qYmdyj0mQ+BfV8ztVUKEVlim3+ SFgWXJJooShQxHMuMr0X1+CrlVqaDUt3d39NDp3pzCXDNbTd9MRjizTRqHXEB9rmRwuM yTPogYiMv6fCz77PS9RrhmmVthX1WrzFVDxQjmv3lv0K09eJqDcwJZjtdigpZub8bV11 GsEbehx6MaE3UJ2XBV4qCujdIsBty8PE073D+cOeVM2GHH4hjQd0XSiRg1zy3VrftTp9 ROBukqKtvn1NxjM2q5Vd7L7xi+lqQaBJ6+i/3pEjUqWn8jJPbZPHBE//wjBorkOIGoqm 2NtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=xGL5DCtywrgA9gA0wQaLdXwTlM4BhcumR5fKoiJ4h1o=; b=a5WUrjcPEmqUtZlqGFxRmGSYUHM7s6utaTOqvVTJHED3g84ZmOCE1q89KCmSBP6pV2 tbXwXOltYg/sf1AVOpDSe3B3wL8/mGcZUe3XSGS9Ry8QNh8WlZWU8RfllvKJVfsnoKBp mAHXyiyVequtSUDUK/R5rp9c305/mpE78jatodWI6/ro5HHY5hZ5dqZUey3K5qfJUG9x ILwO9lNiSq8a7WgvNDmX2egFeZmc0Zv59X9SttHobhRZFXg211zJcj92q+G3gXmKxPOH KlQDm8envFBDqF8NZOElUMJkyLFHoa92PACtxXBx3EI+gp4EKV4SXpS6FiictqnezdTp VGTw== X-Gm-Message-State: AOAM5337wo2aNBdwkfsVQ4pbxzgvyYIp9KCG3Fyjwd9KUb5YeLy1x+rF FuQDThaw8CJhkFakU41MVok= X-Google-Smtp-Source: ABdhPJx5c0iBBckVdWb7TvLiqBFuoxPzrz3WfCy7vdQ6o5KOzu7eV8gMymihbNvQLwlMgRFMbzcYWg== X-Received: by 2002:a17:90a:b30a:: with SMTP id d10mr11163474pjr.92.1640411645748; Fri, 24 Dec 2021 21:54:05 -0800 (PST) Received: from ip-172-31-30-232.ap-northeast-1.compute.internal (ec2-18-181-137-102.ap-northeast-1.compute.amazonaws.com. [18.181.137.102]) by smtp.gmail.com with ESMTPSA id h3sm4713611pjk.48.2021.12.24.21.54.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Dec 2021 21:54:05 -0800 (PST) Date: Sat, 25 Dec 2021 05:53:59 +0000 From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Baoquan He Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, hch@lst.de, cl@linux.com, John.p.donnelly@oracle.com, kexec@lists.infradead.org, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, vbabka@suse.cz, David.Laight@aculab.com, david@redhat.com, x86@kernel.org, bp@alien8.de Subject: Re: [PATCH v4 3/3] mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages Message-ID: References: <20211223094435.248523-1-bhe@redhat.com> <20211223094435.248523-4-bhe@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211223094435.248523-4-bhe@redhat.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 13DE2A0047 X-Stat-Signature: 6qf4powqohb16j71gxbfope3qet33aa9 Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=DRrT5d1L; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com X-HE-Tag: 1640411637-890154 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, Dec 23, 2021 at 05:44:35PM +0800, Baoquan He wrote: > In kdump kernel of x86_64, page allocation failure is observed: > > kworker/u2:2: page allocation failure: order:0, mode:0xcc1(GFP_KERNEL|GFP_DMA), nodemask=(null),cpuset=/,mems_allowed=0 > CPU: 0 PID: 55 Comm: kworker/u2:2 Not tainted 5.16.0-rc4+ #5 > Hardware name: AMD Dinar/Dinar, BIOS RDN1505B 06/05/2013 > Workqueue: events_unbound async_run_entry_fn > Call Trace: > > dump_stack_lvl+0x48/0x5e > warn_alloc.cold+0x72/0xd6 > __alloc_pages_slowpath.constprop.0+0xc69/0xcd0 > __alloc_pages+0x1df/0x210 > new_slab+0x389/0x4d0 > ___slab_alloc+0x58f/0x770 > __slab_alloc.constprop.0+0x4a/0x80 > kmem_cache_alloc_trace+0x24b/0x2c0 > sr_probe+0x1db/0x620 > ...... > device_add+0x405/0x920 > ...... > __scsi_add_device+0xe5/0x100 > ata_scsi_scan_host+0x97/0x1d0 > async_run_entry_fn+0x30/0x130 > process_one_work+0x1e8/0x3c0 > worker_thread+0x50/0x3b0 > ? rescuer_thread+0x350/0x350 > kthread+0x16b/0x190 > ? set_kthread_struct+0x40/0x40 > ret_from_fork+0x22/0x30 > > Mem-Info: > ...... > > The above failure happened when calling kmalloc() to allocate buffer with > GFP_DMA. It requests to allocate slab page from DMA zone while no managed > pages at all in there. > sr_probe() > --> get_capabilities() > --> buffer = kmalloc(512, GFP_KERNEL | GFP_DMA); > > Because in the current kernel, dma-kmalloc will be created as long as > CONFIG_ZONE_DMA is enabled. However, kdump kernel of x86_64 doesn't have > managed pages on DMA zone since commit 6f599d84231f ("x86/kdump: Always > reserve the low 1M when the crashkernel option is specified"). The failure > can be always reproduced. > > For now, let's mute the warning of allocation failure if requesting pages > from DMA zone while no managed pages. > > Fixes: 6f599d84231f ("x86/kdump: Always reserve the low 1M when the crashkernel option is specified") > Cc: stable@vger.kernel.org > Signed-off-by: Baoquan He > Cc: Christoph Lameter > Cc: Pekka Enberg > Cc: David Rientjes > Cc: Joonsoo Kim > Cc: Vlastimil Babka > --- > mm/page_alloc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 7c7a0b5de2ff..843bc8e5550a 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -4204,7 +4204,8 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...) > va_list args; > static DEFINE_RATELIMIT_STATE(nopage_rs, 10*HZ, 1); > > - if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs)) > + if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs) || > + (gfp_mask & __GFP_DMA) && !has_managed_dma()) > return; > Warning when there's always no page in DMA zone is unnecessary and it confuses user. The patch looks good. Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> And there is some driers that allocate memory with GFP_DMA even if that flag is unnecessary. We need to do cleanup later. Baoquan Are you planning to do it soon? I want to help that. Merry Christmas, Hyeonggon > va_start(args, fmt); > -- > 2.26.3 > >