Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3623357pxb; Mon, 24 Jan 2022 13:45:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJyjLfo3/I4rsFl2jLzg2syIINJRRC2NiEQ8Kv5Oo82nX8GVdFswV0OB5DoaVY78S9xTm9W8 X-Received: by 2002:a17:90b:78c:: with SMTP id l12mr218586pjz.73.1643060623237; Mon, 24 Jan 2022 13:43:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643060623; cv=none; d=google.com; s=arc-20160816; b=yx1UhcqiyhX1/zTR7QqpmyO2sD25P9IVLUpeSDZQnck+ImR8AgiGgK4Dp5oUFAW3X0 1yscEawcUwMcCh+AS+pGZarCgqDwpFl0a+XF8RaM91vbCpNi58qv3dkKCKcTXDfosUw4 rgOPFLLJ0epPk1eMM7WIuFnjlyYg45RL3pA5+cAZssf+ksNiKpMJu7L0fv9ipLdkAXZm x9eRn59ug2oCp6ljWdDo8gbPjEuk07wYxciRK5oNfG2ytpnXb/MwrzjnVbGVWqUDALG2 RfLIb+U02dkWcF3V/7UvjT01tfeVnSQLk1F+upOsBtC3Hk98WKlAYkiRv+0l7M8vB7+W mMGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=j8h8qEeu8pQwvITDqA3vUHxJ0t8zpNHPjU1Nqyd3oFc=; b=LC5EwW29Jeee5I+FvS6Vu0+0hjm49s8IfD1FMhqAmEdUd+IKHekbReTCbDQUsIVJ3o FsrAe6Skvqi02Kwre8g7rlvPOGAD1SKS61seGNmBEaiPvokdLQXXUH7tG+6iTYYxeip5 DZQuAZDQHVPZ+TaV/2EEX8JaZYFsIdp/vZq9mVOYAQD0HT/m4kiGArwiPY4bdpbIciYq mb3x2+c15Ur0t37uZRIftiTMmISFpm2i4grV32UjkdWjJaciFpzkqtjFAAk/EN1oZs4E gOXzHLKNudzN0dCo8kdXjxXSObD/gpKsrqGkvqpMYrcj5iX1qSAe5oM+pwwr2nC/6r7K cMAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=pl8tlp9i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m22si12462201pls.581.2022.01.24.13.43.24; Mon, 24 Jan 2022 13:43:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=pl8tlp9i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1451859AbiAXVXm (ORCPT + 99 others); Mon, 24 Jan 2022 16:23:42 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:49536 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1443147AbiAXU4X (ORCPT ); Mon, 24 Jan 2022 15:56:23 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B516260C60; Mon, 24 Jan 2022 20:56:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95CB3C340E5; Mon, 24 Jan 2022 20:56:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643057782; bh=uhZh2+3pBNI2zviQBklQad147jZXKReeIbcT8fkfFjg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pl8tlp9idUFD3LftGKoJM7NZQmuVN5B3xf2r9sl90NiqW3JTD7+7vY8oVeGCi86iN xz1i2Pu7bmyR6QR2TycruU8hDk/hivk2qWz+i5vlgp2wl604wbEc5XKaZyDV176oZG 5BpHlp9qH/DhP3JGp0g/hwJnaeD0oLwVeZYt8El8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Baoquan He , John Donnelly , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Vlastimil Babka , Borislav Petkov , Christoph Hellwig , David Hildenbrand , David Laight , Marek Szyprowski , Robin Murphy , Andrew Morton , Linus Torvalds Subject: [PATCH 5.16 0077/1039] mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages Date: Mon, 24 Jan 2022 19:31:06 +0100 Message-Id: <20220124184127.763092675@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184125.121143506@linuxfoundation.org> References: <20220124184125.121143506@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Baoquan He commit c4dc63f0032c77464fbd4e7a6afc22fa6913c4a7 upstream. 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. [akpm@linux-foundation.org: fix warning] Link: https://lkml.kernel.org/r/20211223094435.248523-4-bhe@redhat.com Fixes: 6f599d84231f ("x86/kdump: Always reserve the low 1M when the crashkernel option is specified") Signed-off-by: Baoquan He Acked-by: John Donnelly Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Cc: Vlastimil Babka Cc: Borislav Petkov Cc: Christoph Hellwig Cc: David Hildenbrand Cc: David Laight Cc: Marek Szyprowski Cc: Robin Murphy Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- mm/page_alloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4204,7 +4204,9 @@ void warn_alloc(gfp_t gfp_mask, nodemask 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; va_start(args, fmt);