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 C9F87C54742 for ; Tue, 27 Aug 2024 23:10:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A66956B0082; Tue, 27 Aug 2024 19:10:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A18F66B0083; Tue, 27 Aug 2024 19:10:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8DDC06B0085; Tue, 27 Aug 2024 19:10:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 6F8196B0082 for ; Tue, 27 Aug 2024 19:10:26 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E0CCC802D8 for ; Tue, 27 Aug 2024 23:10:25 +0000 (UTC) X-FDA: 82499571210.27.2B67934 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf05.hostedemail.com (Postfix) with ESMTP id D5264100014 for ; Tue, 27 Aug 2024 23:10:23 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=tenstorrent.com header.s=google header.b=HhOG39Cm; spf=pass (imf05.hostedemail.com: domain of dfustini@tenstorrent.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=dfustini@tenstorrent.com; dmarc=pass (policy=quarantine) header.from=tenstorrent.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724800180; a=rsa-sha256; cv=none; b=SY0pITneh5oR3jLyuet0JsaQU+caJKef8bLB9YtNa9JP4AWW1mZJPMP5TKi2esbnLn/AD+ etBaEmik+S5YoKSXD/eCgC4R31F+JLFvNGAqJnmnyr5J51+x5txaXx9tQjKwKz4uiagAIv CdnJOpod0NZZk2uUEcEDfGk4JGHq6fM= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=tenstorrent.com header.s=google header.b=HhOG39Cm; spf=pass (imf05.hostedemail.com: domain of dfustini@tenstorrent.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=dfustini@tenstorrent.com; dmarc=pass (policy=quarantine) header.from=tenstorrent.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724800180; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=W32QRSPB+v/v1hZB3DM0yi6GVvOLbgl8fIqle8GTQRg=; b=2Hz3a03Kz+BFv6bYsOCxyYuFdPx8cW3aN/6ATHYjbGQOzd34S2xT7UCdbtA0Y3b8Hxx7rc EKcUCVHWYBynZ7uTODtn4jP+0CzCViK5tw22UQBqLLiZuwKzo13d29jlON3f/RbKE5Xq4Y xpxCwuMlLydCrpO45/Usi3dBnzubxEw= Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-71434174201so4975268b3a.0 for ; Tue, 27 Aug 2024 16:10:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tenstorrent.com; s=google; t=1724800222; x=1725405022; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=W32QRSPB+v/v1hZB3DM0yi6GVvOLbgl8fIqle8GTQRg=; b=HhOG39CmHVD65s9wjHE/3QWHH5IDp92hIP8CSbD7GuPn1APGmsVWomz/TaOqprU0Eu HPlPWQhK5XBc2M4eD56CBkT3kb+wTMcyamCPo69kQtvLX+LhNjOxKua9+kdExV3qRb3X x+p2U68AOAN5/t/KAOERA+PepKcuBd1CnHsHiOVuvv0P4ypsZH8qaAk2gNXG2Y6EYWwx anNuUcxU1l2K2RxVoLnhXROwyPZ6/B7jy1jcCH+8XtLeFkspHcin/1VJXus6ZHxMViUH whuqtloKXJJ16WTVMHRnkTrFtHQQEq5sryI+t8M0e4XCO8QLidnt1qmRZ5lakYfIPpH7 CrqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724800222; x=1725405022; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=W32QRSPB+v/v1hZB3DM0yi6GVvOLbgl8fIqle8GTQRg=; b=DV4SXhe9UkKZnJsVfTpXw0k3BTPAnZU2ieN905Ewyvrp0sj5IvUAZAOZM5xDGjfRVJ EnP8CGgc8DIT8/QgY4G68/7y0uZbfeVWBUpYEXs+ELdkYiids9t30gteVp2folNhSP4y YdmBqkx0Rzs4iKkeqgfPsxAI6mUhVyOKf+09vxtap+s1ffps3hV8CIRT0zMoOuAQsTW7 VVI8pWe96cMBFFtYbGmfT03iYldZudefloxxQfZdyE7rKeVLKTXLjU5a3ieavIg0/DvC 8sh3DBN1vV5dp4zmabGDCiYtGKsNKdz1Z7LMQl60PVQAvwbM9zFWxJvPogNxUxlt7y5Y uQXQ== X-Forwarded-Encrypted: i=1; AJvYcCWQQdLNM67pBctyKZvKzCowl0WFUNzuEBh+ftmDTydSRAz6HIrwdOLNI5J/LWd3URLf8o4Cz4qXQQ==@kvack.org X-Gm-Message-State: AOJu0YzaC2e90SCAL1FePL4zvEjEwiCjgRgPS9q6PhekSF1v2YKXNHBW aShV5KfIRVjlZPC8lSpkyXT2YkW6KTrTjQ4PtZkr3zedmI/rTa77hFf3FLXClhQ= X-Google-Smtp-Source: AGHT+IEroGkXS6DzUhuTL3usdmL+nViyF25HwRxsfbE8sxGqcjS2RSN8mHQbCRPygBZgO5SnMudlIw== X-Received: by 2002:a05:6a20:c6ce:b0:1ca:dbec:c5d2 with SMTP id adf61e73a8af0-1ccd28675a7mr85752637.5.1724800222214; Tue, 27 Aug 2024 16:10:22 -0700 (PDT) Received: from x1 (75-164-215-68.ptld.qwest.net. [75.164.215.68]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7143430c407sm9369816b3a.178.2024.08.27.16.10.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Aug 2024 16:10:21 -0700 (PDT) Date: Tue, 27 Aug 2024 16:10:20 -0700 From: Drew Fustini To: Vladimir Kondratiev Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Andrew Morton , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] riscv: make ZONE_DMA32 optional Message-ID: References: <20240827113611.537302-1-vladimir.kondratiev@mobileye.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240827113611.537302-1-vladimir.kondratiev@mobileye.com> X-Stat-Signature: 9ohae6j54ofyqgga9gi3w9m9opnx8ife X-Rspamd-Queue-Id: D5264100014 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1724800223-443679 X-HE-Meta: U2FsdGVkX1/HIEdEQqE2dwKX6AxaXs9a3Lj5F2VUi4KxDN2I2IaQt2oB3GqmsRCkqTtqC89WzlmYdg3drLmfc2PuIGJAmlmUnTUoAs3rKAxo8DoSQZ49H8J7tbr9vcUiNa9Q6C6Gol4V5BAFnfmpUkPPjDadrpT1VEOEn3f5N50+hj6RMB8uGWhYafy7zxPFY+zd08UkCz227vI1nq+2Sy7yIpYd3370UMh+GOTYJ4HoT+E/QNym8HC7yzp1lSJ5q1oOn8rMtof5rTtDxqpb4nYN+W2I01tgVl0g3LbGeAShns7QKMafdeLcP1UmKkTIPFiEiXDsu1KH+YoC7jHGcbkf59p/HLAM/nGAwkwtI6TYzF40oQt5IaBfB4Hx+Pia0BgvD2FE3kJDH+6KSUg83+Ak+KhRASI6h4JFizMIPMtpmyZmYHbJ5JDxb5Vzb0f2/v0/LkQM52vkM9rt/0xKRGvwxjuCLcVccx6vGmN1GX7wpgIjDFDyE40e9i/S9wv6ZM45CsRWmwyB1cuKogF5HOZ97kumBDS3dClDjpZqWQ2BZxKMLMcjj+TkPDBng+an+U10CK8l5VYUuB5Ujj0OdFQ3112teFVc5rzNOlajKdeM3rp8WMfK+99FkYedyKQSVVh4gMlZTT2mV5UIxlWri6C/0SoNaWKDtrfhNa/Pqv7rlB59SNkvaPmQB6udUzK2stEXPyCMxajG4j4TGyQBWTs72MTPxdt8kO7fZi1lxdO9yERu94lTNwxakphHXmyiIxGASP4Ea62dGOOgG2xECghf/pHcLo4IJENVgMLPnXFj7lnB1FOSPXeB7Axy3rZo94T8mbfphmGFQHGCfY08ljbxDc72NztbwlDgzD/JACQE5gcLhBIDsBjENB0U1/s+6M+A5CBBJX+pPUepGm1fE5Jx1xth7xg8EBT1Ro7hzlbktrEfqlzbjqFaAW+CB4BUy3Cf6bCdfD+RxD+7ZTT XRuIvtnj +C0Ev/wOMEcgQaseLfSVjI/znp0QKgyaLq4yWJ9y1oCmbWW1HZXTYGnUu83iXqU0qF3H+1nqkp2a0uTtE5lh5r3PjANItWQ0zakajDNuW0yxgNhm9A2xCARoYT4Lxjpqg2HmDeC7XEcSvnqqXa5Pmp7v3V3MP+nZHE7MwBHntwtaTpdphdEq268OAAeRIiXmY0CEt3hMTsY5hu8LsM9poZ/d/rVkgbqc7cAy1DM6PUcGCQnCmtIzSvruYuzI1yZqzZcG7TzR8w1JF8UPu3lsap4rQgOQZ+2H3+40gg5dpQRgLmUvgUOAH5JdOS5YRorIk4PcOANev4djNENNDq609W26dge4nTiwj6h4HRPVcKcGOE/he4ygSr6Ryu3i2o4ND67sFYDY+6qPRq+WyIX9i/A4SIfY5giKe3y015f1IJdoTQZEYLATOODgnOlw8KjIZFwzZqItDSpLX5F13SjvnMc/J0ueSNb8g5rjHiNMvqbDSlfhD8KvjJfgUtg== 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: List-Subscribe: List-Unsubscribe: On Tue, Aug 27, 2024 at 02:36:11PM +0300, Vladimir Kondratiev wrote: > It is not necessary any RISCV platform has ZONE_DMA32. > > Example - if platform has no DRAM in [0..4G] region, > it will report failure like below each boot. > > [ 0.088709] swapper/0: page allocation failure: order:7, mode:0xcc4(GFP_KERNEL|GFP_DMA32), nodemask=(null),cpuset=/ > [ 0.088832] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.11.0-rc5 #30 > [ 0.088864] Call Trace: > [ 0.088869] [] dump_backtrace+0x1c/0x24 > [ 0.088910] [] show_stack+0x2c/0x38 > [ 0.088957] [] dump_stack_lvl+0x52/0x74 > [ 0.088987] [] dump_stack+0x14/0x1c > [ 0.089010] [] warn_alloc+0xf4/0x176 > [ 0.089041] [] __alloc_pages_noprof+0xc28/0xcb4 > [ 0.089067] [] atomic_pool_expand+0x62/0x1f8 > [ 0.089090] [] __dma_atomic_pool_init+0x46/0x9e > [ 0.089115] [] dma_atomic_pool_init+0x96/0x11c > [ 0.089139] [] do_one_initcall+0x5c/0x1b2 > [ 0.089158] [] kernel_init_freeable+0x214/0x274 > [ 0.089190] [] kernel_init+0x1e/0x10a > [ 0.089209] [] ret_from_fork+0xe/0x1c > > Signed-off-by: Vladimir Kondratiev > --- > arch/riscv/Kconfig | 2 +- > mm/Kconfig | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 0f3cd7c3a436..94a573112625 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -50,6 +50,7 @@ config RISCV > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > select ARCH_HAS_UBSAN > select ARCH_HAS_VDSO_DATA > + select ARCH_HAS_ZONE_DMA_SET if 64BIT > select ARCH_KEEP_MEMBLOCK if ACPI > select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE if 64BIT && MMU > select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX > @@ -200,7 +201,6 @@ config RISCV > select THREAD_INFO_IN_TASK > select TRACE_IRQFLAGS_SUPPORT > select UACCESS_MEMCPY if !MMU > - select ZONE_DMA32 if 64BIT > > config CLANG_SUPPORTS_DYNAMIC_FTRACE > def_bool CC_IS_CLANG > diff --git a/mm/Kconfig b/mm/Kconfig > index b72e7d040f78..97c85da98e89 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -1032,7 +1032,7 @@ config ZONE_DMA > config ZONE_DMA32 > bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > depends on !X86_32 > - default y if ARM64 > + default y if ARM64 || (RISCV && 64BIT) > > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > -- > 2.37.3 > Reviewed-by: Drew Fustini Thanks for sending this patch as I've also encountered that annoying error on systems with DRAM above 4GB. I tested this patch by changing the qemu virt machine to have DRAM starting at 2^32: diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index cef41c150aaf..3033a2560edb 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -87,7 +87,7 @@ static const MemMapEntry virt_memmap[] = { [VIRT_IMSIC_S] = { 0x28000000, VIRT_IMSIC_MAX_SIZE }, [VIRT_PCIE_ECAM] = { 0x30000000, 0x10000000 }, [VIRT_PCIE_MMIO] = { 0x40000000, 0x40000000 }, - [VIRT_DRAM] = { 0x80000000, 0x0 }, + [VIRT_DRAM] = { 0x100000000, 0x0 }, }; /* PCIe high mmio is fixed for RV32 */