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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1085AC4708F for ; Sat, 29 May 2021 23:51:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E15F561074 for ; Sat, 29 May 2021 23:51:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229570AbhE2XxP (ORCPT ); Sat, 29 May 2021 19:53:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229589AbhE2XxL (ORCPT ); Sat, 29 May 2021 19:53:11 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C462DC061574 for ; Sat, 29 May 2021 16:51:33 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id c12so6149409pfl.3 for ; Sat, 29 May 2021 16:51:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=w/ASenlrlYpoSgmPGAUNBpcrDCpZFcQhoW++hsBDOGf9S8cr4HPj9mCywbL3m32AB/ FkfDqqUTYjALltd8MsFQVzK+XJKnuB5uBffBtyuyNSbpEvY51Y+YSBcyozgpgVPIhsl4 gSkNAp/AZrPe1wwIb8UV011ifeU7vO4ukx6BuyLcM76tCvr1Uy/aoQq0EgTwtXI339ZE yvotJShBaEPsozN/z+qKcAcoWfuuffE+sy1Y2IKgiPOTeSJKRcqrZMljgjP+p6CReia5 ltKCmOEzmEjTPnBEqZmlyI5k3pTk5oxpJp0XPPe5YII8ZSbANX5Us7f8mWD7bzf7OiUF n5+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=kslsCzT9mUZ0bt0iiTUmGvGHcasVUAWNO9sk7IMhxZrUqPRQfCatjMHdNq+QdHjsa0 9tNetDv8U/ryvyr9/y2X8Fy5GugJ9g5EJ9YFTLtYE5bArxiPjDLU6ZJLH55CypbjaFMw /3hvvLR6eDCF5k0ejih6tgfnIx0N1yc23vRcD8iGZwCQ5AdvyCATIJTWjYBB1ozoCHLk GTcr1QnOUNzgthOJIh9u4VIG8Lo6ZtSFU36zrQNRnHAVg3UmDiy4dOM13JMeAv5b7NvA 6TgrLmRNptGEuNwi/B3WbdOa3TqUKM9jJYDSu6nIoBQzY/ZcN4Ue/55Y7z/95DmzD11G dvCA== X-Gm-Message-State: AOAM530cRz9sYS31MweMlkLJtxd3fLq/f/66NvCT6WN55MV8BV03T4rD /6vb17dPnlKkPqs8soejYyWlUA== X-Google-Smtp-Source: ABdhPJxVMvbtNLEA8KHH03zcvYuWVttTsQO8pYCDwf0GD8YJkvMEKOKNYDHbevN2fpsnwnTRTOFYRA== X-Received: by 2002:a63:7204:: with SMTP id n4mr16027141pgc.78.1622332293157; Sat, 29 May 2021 16:51:33 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id g29sm7743523pgm.11.2021.05.29.16.51.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 May 2021 16:51:32 -0700 (PDT) Date: Sat, 29 May 2021 16:51:32 -0700 (PDT) X-Google-Original-Date: Sat, 29 May 2021 16:51:28 PDT (-0700) Subject: Re: [PATCH v2] mm: generalize ZONE_[DMA|DMA32] In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> CC: akpm@linux-foundation.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, wangkefeng.wang@huawei.com, catalin.marinas@arm.com, will@kernel.org, geert@linux-m68k.org, tsbogend@alpha.franken.de, davem@davemloft.net, mingo@redhat.com, bp@alien8.de, rth@twiddle.net, linux@armlinux.org.uk, rppt@linux.ibm.com From: Palmer Dabbelt To: wangkefeng.wang@huawei.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-s390@vger.kernel.org On Fri, 28 May 2021 00:45:57 PDT (-0700), wangkefeng.wang@huawei.com wrote: > ZONE_[DMA|DMA32] configs have duplicate definitions on platforms > that subscribe them. Instead, just make them generic options which > can be selected on applicable platforms. > > Also only x86/arm64 architectures could enable both ZONE_DMA and > ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone > configurable and visible on the two architectures. > > Cc: Andrew Morton > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Geert Uytterhoeven > Cc: Thomas Bogendoerfer > Cc: "David S. Miller" > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Palmer Dabbelt > Cc: Richard Henderson > Cc: Russell King > Acked-by: Catalin Marinas # for arm64 > Acked-by: Geert Uytterhoeven # for m68k > Acked-by: Mike Rapoport > Signed-off-by: Kefeng Wang Acked-by: Palmer Dabbelt # for RISC-V > --- > v2: > -i386 can't enable ZONE_DMA32, fix it. > -make ZONE_DMA default y on X86 as before. > -collect ACKs > > arch/alpha/Kconfig | 5 +---- > arch/arm/Kconfig | 3 --- > arch/arm64/Kconfig | 9 +-------- > arch/ia64/Kconfig | 4 +--- > arch/m68k/Kconfig | 5 +---- > arch/microblaze/Kconfig | 4 +--- > arch/mips/Kconfig | 7 ------- > arch/powerpc/Kconfig | 4 ---- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 5 +---- > arch/s390/Kconfig | 4 +--- > arch/sparc/Kconfig | 5 +---- > arch/x86/Kconfig | 15 ++------------- > mm/Kconfig | 12 ++++++++++++ > 14 files changed, 23 insertions(+), 60 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 5998106faa60..6a69a14c4825 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -40,6 +40,7 @@ config ALPHA > select MMU_GATHER_NO_RANGE > select SET_FS > select SPARSEMEM_EXTREME if SPARSEMEM > + select ZONE_DMA > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > @@ -65,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY > bool > default y > > -config ZONE_DMA > - bool > - default y > - > config GENERIC_ISA_DMA > bool > default y > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 24804f11302d..000c3f80b58e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -218,9 +218,6 @@ config GENERIC_CALIBRATE_DELAY > config ARCH_MAY_HAVE_PC_FDC > bool > > -config ZONE_DMA > - bool > - > config ARCH_SUPPORTS_UPROBES > def_bool y > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 9f1d8566bbf9..42794474f37f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -42,6 +42,7 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK if !PREEMPTION > @@ -307,14 +308,6 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > -config ZONE_DMA > - bool "Support DMA zone" if EXPERT > - default y > - > -config ZONE_DMA32 > - bool "Support DMA32 zone" if EXPERT > - default y > - > config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE > def_bool y > > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 279252e3e0f7..fd8503a0088a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -60,6 +60,7 @@ config IA64 > select NUMA if !FLATMEM > select PCI_MSI_ARCH_FALLBACKS if PCI_MSI > select SET_FS > + select ZONE_DMA32 > default y > help > The Itanium Processor Family is Intel's 64-bit successor to > @@ -72,9 +73,6 @@ config 64BIT > select ATA_NONSTANDARD if ATA > default y > > -config ZONE_DMA32 > - def_bool y > - > config MMU > bool > default y > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 372e4e69c43a..05a729c6ad7f 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -34,6 +34,7 @@ config M68K > select SET_FS > select UACCESS_MEMCPY if !MMU > select VIRT_TO_BUS > + select ZONE_DMA > > config CPU_BIG_ENDIAN > def_bool y > @@ -62,10 +63,6 @@ config TIME_LOW_RES > config NO_IOPORT_MAP > def_bool y > > -config ZONE_DMA > - bool > - default y > - > config HZ > int > default 1000 if CLEOPATRA > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 0660f47012bc..14a67a42fcae 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -43,6 +43,7 @@ config MICROBLAZE > select MMU_GATHER_NO_RANGE > select SPARSE_IRQ > select SET_FS > + select ZONE_DMA > > # Endianness selection > choice > @@ -60,9 +61,6 @@ config CPU_LITTLE_ENDIAN > > endchoice > > -config ZONE_DMA > - def_bool y > - > config ARCH_HAS_ILOG2_U32 > def_bool n > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ed51970c08e7..430d5324f1af 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -3277,13 +3277,6 @@ config I8253 > select CLKSRC_I8253 > select CLKEVT_I8253 > select MIPS_EXTERNAL_TIMER > - > -config ZONE_DMA > - bool > - > -config ZONE_DMA32 > - bool > - > endmenu > > config TRAD_SIGNALS > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 088dd2afcfe4..0f78bb383a12 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -403,10 +403,6 @@ config PPC_ADV_DEBUG_DAC_RANGE > config PPC_DAWR > bool > > -config ZONE_DMA > - bool > - default y if PPC_BOOK3E_64 > - > config PGTABLE_LEVELS > int > default 2 if !PPC64 > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index f998e655b570..7d271de8fcbd 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -111,6 +111,7 @@ config PPC_BOOK3E_64 > select PPC_FPU # Make it a choice ? > select PPC_SMP_MUXED_IPI > select PPC_DOORBELL > + select ZONE_DMA > > endchoice > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index a8ad8eb76120..d29643dee126 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -103,6 +103,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > + select ZONE_DMA32 if 64BIT > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT > @@ -132,10 +133,6 @@ config MMU > Select if you want MMU-based virtualised addressing space > support by paged memory management. If unsure, say 'Y'. > > -config ZONE_DMA32 > - bool > - default y if 64BIT > - > config VA_BITS > int > default 32 if 32BIT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index b4c7c34069f8..daab9d56957a 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -2,9 +2,6 @@ > config MMU > def_bool y > > -config ZONE_DMA > - def_bool y > - > config CPU_BIG_ENDIAN > def_bool y > > @@ -210,6 +207,7 @@ config S390 > select THREAD_INFO_IN_TASK > select TTY > select VIRT_CPU_ACCOUNTING > + select ZONE_DMA > # Note: keep the above list sorted alphabetically > > config SCHED_OMIT_FRAME_POINTER > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 164a5254c91c..39679664cc9a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -59,6 +59,7 @@ config SPARC32 > select CLZ_TAB > select HAVE_UID16 > select OLD_SIGACTION > + select ZONE_DMA > > config SPARC64 > def_bool 64BIT > @@ -141,10 +142,6 @@ config HIGHMEM > default y if SPARC32 > select KMAP_LOCAL > > -config ZONE_DMA > - bool > - default y if SPARC32 > - > config GENERIC_ISA_DMA > bool > default y if SPARC32 > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 0045e1b44190..11cf8a0d6800 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -33,6 +33,7 @@ config X86_64 > select NEED_DMA_MAP_STATE > select SWIOTLB > select ARCH_HAS_ELFCORE_COMPAT > + select ZONE_DMA32 > > config FORCE_DYNAMIC_FTRACE > def_bool y > @@ -93,6 +94,7 @@ config X86 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_DEBUG_WX > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI > select ARCH_MIGHT_HAVE_PC_PARPORT > @@ -343,9 +345,6 @@ config ARCH_SUSPEND_POSSIBLE > config ARCH_WANT_GENERAL_HUGETLB > def_bool y > > -config ZONE_DMA32 > - def_bool y if X86_64 > - > config AUDIT_ARCH > def_bool y if X86_64 > > @@ -393,16 +392,6 @@ config CC_HAS_SANE_STACKPROTECTOR > > menu "Processor type and features" > > -config ZONE_DMA > - bool "DMA memory allocation support" if EXPERT > - default y > - help > - DMA memory allocation support allows devices with less than 32-bit > - addressing to allocate within the first 16MB of address space. > - Disable if no such devices will be used. > - > - If unsure, say Y. > - > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..16930f40f293 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -789,6 +789,18 @@ config ARCH_HAS_CACHE_LINE_SIZE > config ARCH_HAS_PTE_DEVMAP > bool > > +config ARCH_HAS_ZONE_DMA_SET > + bool > + > +config ZONE_DMA > + bool "Support DMA zone" if ARCH_HAS_ZONE_DMA_SET > + default y if ARM64 || X86 > + > +config ZONE_DMA32 > + bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > + depends on !X86_32 > + default y if ARM64 > + > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > depends on MEMORY_HOTPLUG 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 X-Spam-Level: X-Spam-Status: No, score=-14.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71921C47082 for ; Sat, 29 May 2021 23:52:14 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 014EB6108D for ; Sat, 29 May 2021 23:52:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 014EB6108D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Mime-Version:Message-ID:To:From:CC:In-Reply-To: Subject:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References:List-Owner; bh=+R4jEE25pZ0iJAPxaMxqMzsV0y44ZUEelHQ87Zl6vsg=; b=bV4K5DuaCYbZmpxgEcYlsmDFWE lbrQUYUASKubEEvOh+OgoX4M06aKaMjqdPZ6yg8rYTIYxUSr1u715BAgc7nPBrfZzruYEYROIYQJm h5para8NGQ3lKN+XX3elt9WR6SGejMwJeci0y0UJUOdRrDL9iQmk1xbwKMM+vnS8jNJvEQompYrFy pNem5kCmL+ATrvrW0oL9gX/iNThcDN4z11o5A72jNfgS2zqyIcPBhh0XDaoTHq1lqpFS9sro3GEx8 9DlXQtMXuqyfk3fW5WR7Z+7DmNWbcACc6Xpb1aawNwmjDrB0REaYGMu2gVxkOeM2as4tbnizH2f8k u3dZxwMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ln8jx-008cJA-5a; Sat, 29 May 2021 23:51:37 +0000 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ln8jt-008cI8-TI for linux-riscv@lists.infradead.org; Sat, 29 May 2021 23:51:35 +0000 Received: by mail-pg1-x52f.google.com with SMTP id v14so5471702pgi.6 for ; Sat, 29 May 2021 16:51:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=w/ASenlrlYpoSgmPGAUNBpcrDCpZFcQhoW++hsBDOGf9S8cr4HPj9mCywbL3m32AB/ FkfDqqUTYjALltd8MsFQVzK+XJKnuB5uBffBtyuyNSbpEvY51Y+YSBcyozgpgVPIhsl4 gSkNAp/AZrPe1wwIb8UV011ifeU7vO4ukx6BuyLcM76tCvr1Uy/aoQq0EgTwtXI339ZE yvotJShBaEPsozN/z+qKcAcoWfuuffE+sy1Y2IKgiPOTeSJKRcqrZMljgjP+p6CReia5 ltKCmOEzmEjTPnBEqZmlyI5k3pTk5oxpJp0XPPe5YII8ZSbANX5Us7f8mWD7bzf7OiUF n5+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=NS+SyyJ0RCvmudD0hUQwzSDPsDsZC02LSn7NVYCA3fJHhD2cf65/R0QZFlU+ctyGd2 I7JUUd3/ce+xVk6fb4gNSTFVCSkYEVWpL2M9hvIhrJ8p1aytnYZq9oL7xjT1tfjAv9R5 pRXqRmWfAzYg5o3Ypvlrwr2y7wAKy5CMPJ5LudsAemznvTSl7Thfh9WbfUkUB4kt9ZLo EFGnaLcd7oyVkQV7m82+swbUFuBBxn3haZPtGXxjptnRP9ehrzhqN8FHjwr1rwVNnFAj Ml/Eya+dyn0OLbllYx7Z1uDLIC28JJZq3XIhumF4eoDraeLJbWDga21Irwt47mJUMQTx Jc6Q== X-Gm-Message-State: AOAM5300pDGO0eUp6pqbUHo4ImqVAtqzqaKt0x+91z7VXrPP20+qhLM5 Y3mR2/HcDO/mKC7dYfiQ8l20VA== X-Google-Smtp-Source: ABdhPJxVMvbtNLEA8KHH03zcvYuWVttTsQO8pYCDwf0GD8YJkvMEKOKNYDHbevN2fpsnwnTRTOFYRA== X-Received: by 2002:a63:7204:: with SMTP id n4mr16027141pgc.78.1622332293157; Sat, 29 May 2021 16:51:33 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id g29sm7743523pgm.11.2021.05.29.16.51.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 May 2021 16:51:32 -0700 (PDT) Date: Sat, 29 May 2021 16:51:32 -0700 (PDT) X-Google-Original-Date: Sat, 29 May 2021 16:51:28 PDT (-0700) Subject: Re: [PATCH v2] mm: generalize ZONE_[DMA|DMA32] In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> CC: akpm@linux-foundation.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, wangkefeng.wang@huawei.com, catalin.marinas@arm.com, will@kernel.org, geert@linux-m68k.org, tsbogend@alpha.franken.de, davem@davemloft.net, mingo@redhat.com, bp@alien8.de, rth@twiddle.net, linux@armlinux.org.uk, rppt@linux.ibm.com From: Palmer Dabbelt To: wangkefeng.wang@huawei.com Message-ID: Mime-Version: 1.0 (MHng) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210529_165133_986133_D25D4B81 X-CRM114-Status: GOOD ( 27.33 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org On Fri, 28 May 2021 00:45:57 PDT (-0700), wangkefeng.wang@huawei.com wrote: > ZONE_[DMA|DMA32] configs have duplicate definitions on platforms > that subscribe them. Instead, just make them generic options which > can be selected on applicable platforms. > > Also only x86/arm64 architectures could enable both ZONE_DMA and > ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone > configurable and visible on the two architectures. > > Cc: Andrew Morton > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Geert Uytterhoeven > Cc: Thomas Bogendoerfer > Cc: "David S. Miller" > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Palmer Dabbelt > Cc: Richard Henderson > Cc: Russell King > Acked-by: Catalin Marinas # for arm64 > Acked-by: Geert Uytterhoeven # for m68k > Acked-by: Mike Rapoport > Signed-off-by: Kefeng Wang Acked-by: Palmer Dabbelt # for RISC-V > --- > v2: > -i386 can't enable ZONE_DMA32, fix it. > -make ZONE_DMA default y on X86 as before. > -collect ACKs > > arch/alpha/Kconfig | 5 +---- > arch/arm/Kconfig | 3 --- > arch/arm64/Kconfig | 9 +-------- > arch/ia64/Kconfig | 4 +--- > arch/m68k/Kconfig | 5 +---- > arch/microblaze/Kconfig | 4 +--- > arch/mips/Kconfig | 7 ------- > arch/powerpc/Kconfig | 4 ---- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 5 +---- > arch/s390/Kconfig | 4 +--- > arch/sparc/Kconfig | 5 +---- > arch/x86/Kconfig | 15 ++------------- > mm/Kconfig | 12 ++++++++++++ > 14 files changed, 23 insertions(+), 60 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 5998106faa60..6a69a14c4825 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -40,6 +40,7 @@ config ALPHA > select MMU_GATHER_NO_RANGE > select SET_FS > select SPARSEMEM_EXTREME if SPARSEMEM > + select ZONE_DMA > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > @@ -65,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY > bool > default y > > -config ZONE_DMA > - bool > - default y > - > config GENERIC_ISA_DMA > bool > default y > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 24804f11302d..000c3f80b58e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -218,9 +218,6 @@ config GENERIC_CALIBRATE_DELAY > config ARCH_MAY_HAVE_PC_FDC > bool > > -config ZONE_DMA > - bool > - > config ARCH_SUPPORTS_UPROBES > def_bool y > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 9f1d8566bbf9..42794474f37f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -42,6 +42,7 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK if !PREEMPTION > @@ -307,14 +308,6 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > -config ZONE_DMA > - bool "Support DMA zone" if EXPERT > - default y > - > -config ZONE_DMA32 > - bool "Support DMA32 zone" if EXPERT > - default y > - > config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE > def_bool y > > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 279252e3e0f7..fd8503a0088a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -60,6 +60,7 @@ config IA64 > select NUMA if !FLATMEM > select PCI_MSI_ARCH_FALLBACKS if PCI_MSI > select SET_FS > + select ZONE_DMA32 > default y > help > The Itanium Processor Family is Intel's 64-bit successor to > @@ -72,9 +73,6 @@ config 64BIT > select ATA_NONSTANDARD if ATA > default y > > -config ZONE_DMA32 > - def_bool y > - > config MMU > bool > default y > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 372e4e69c43a..05a729c6ad7f 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -34,6 +34,7 @@ config M68K > select SET_FS > select UACCESS_MEMCPY if !MMU > select VIRT_TO_BUS > + select ZONE_DMA > > config CPU_BIG_ENDIAN > def_bool y > @@ -62,10 +63,6 @@ config TIME_LOW_RES > config NO_IOPORT_MAP > def_bool y > > -config ZONE_DMA > - bool > - default y > - > config HZ > int > default 1000 if CLEOPATRA > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 0660f47012bc..14a67a42fcae 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -43,6 +43,7 @@ config MICROBLAZE > select MMU_GATHER_NO_RANGE > select SPARSE_IRQ > select SET_FS > + select ZONE_DMA > > # Endianness selection > choice > @@ -60,9 +61,6 @@ config CPU_LITTLE_ENDIAN > > endchoice > > -config ZONE_DMA > - def_bool y > - > config ARCH_HAS_ILOG2_U32 > def_bool n > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ed51970c08e7..430d5324f1af 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -3277,13 +3277,6 @@ config I8253 > select CLKSRC_I8253 > select CLKEVT_I8253 > select MIPS_EXTERNAL_TIMER > - > -config ZONE_DMA > - bool > - > -config ZONE_DMA32 > - bool > - > endmenu > > config TRAD_SIGNALS > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 088dd2afcfe4..0f78bb383a12 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -403,10 +403,6 @@ config PPC_ADV_DEBUG_DAC_RANGE > config PPC_DAWR > bool > > -config ZONE_DMA > - bool > - default y if PPC_BOOK3E_64 > - > config PGTABLE_LEVELS > int > default 2 if !PPC64 > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index f998e655b570..7d271de8fcbd 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -111,6 +111,7 @@ config PPC_BOOK3E_64 > select PPC_FPU # Make it a choice ? > select PPC_SMP_MUXED_IPI > select PPC_DOORBELL > + select ZONE_DMA > > endchoice > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index a8ad8eb76120..d29643dee126 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -103,6 +103,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > + select ZONE_DMA32 if 64BIT > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT > @@ -132,10 +133,6 @@ config MMU > Select if you want MMU-based virtualised addressing space > support by paged memory management. If unsure, say 'Y'. > > -config ZONE_DMA32 > - bool > - default y if 64BIT > - > config VA_BITS > int > default 32 if 32BIT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index b4c7c34069f8..daab9d56957a 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -2,9 +2,6 @@ > config MMU > def_bool y > > -config ZONE_DMA > - def_bool y > - > config CPU_BIG_ENDIAN > def_bool y > > @@ -210,6 +207,7 @@ config S390 > select THREAD_INFO_IN_TASK > select TTY > select VIRT_CPU_ACCOUNTING > + select ZONE_DMA > # Note: keep the above list sorted alphabetically > > config SCHED_OMIT_FRAME_POINTER > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 164a5254c91c..39679664cc9a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -59,6 +59,7 @@ config SPARC32 > select CLZ_TAB > select HAVE_UID16 > select OLD_SIGACTION > + select ZONE_DMA > > config SPARC64 > def_bool 64BIT > @@ -141,10 +142,6 @@ config HIGHMEM > default y if SPARC32 > select KMAP_LOCAL > > -config ZONE_DMA > - bool > - default y if SPARC32 > - > config GENERIC_ISA_DMA > bool > default y if SPARC32 > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 0045e1b44190..11cf8a0d6800 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -33,6 +33,7 @@ config X86_64 > select NEED_DMA_MAP_STATE > select SWIOTLB > select ARCH_HAS_ELFCORE_COMPAT > + select ZONE_DMA32 > > config FORCE_DYNAMIC_FTRACE > def_bool y > @@ -93,6 +94,7 @@ config X86 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_DEBUG_WX > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI > select ARCH_MIGHT_HAVE_PC_PARPORT > @@ -343,9 +345,6 @@ config ARCH_SUSPEND_POSSIBLE > config ARCH_WANT_GENERAL_HUGETLB > def_bool y > > -config ZONE_DMA32 > - def_bool y if X86_64 > - > config AUDIT_ARCH > def_bool y if X86_64 > > @@ -393,16 +392,6 @@ config CC_HAS_SANE_STACKPROTECTOR > > menu "Processor type and features" > > -config ZONE_DMA > - bool "DMA memory allocation support" if EXPERT > - default y > - help > - DMA memory allocation support allows devices with less than 32-bit > - addressing to allocate within the first 16MB of address space. > - Disable if no such devices will be used. > - > - If unsure, say Y. > - > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..16930f40f293 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -789,6 +789,18 @@ config ARCH_HAS_CACHE_LINE_SIZE > config ARCH_HAS_PTE_DEVMAP > bool > > +config ARCH_HAS_ZONE_DMA_SET > + bool > + > +config ZONE_DMA > + bool "Support DMA zone" if ARCH_HAS_ZONE_DMA_SET > + default y if ARM64 || X86 > + > +config ZONE_DMA32 > + bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > + depends on !X86_32 > + default y if ARM64 > + > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > depends on MEMORY_HOTPLUG _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv 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 X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A5E7C4708F for ; Sat, 29 May 2021 23:52:11 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4E9DD6100C for ; Sat, 29 May 2021 23:52:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4E9DD6100C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Fsyyc5Bwsz309H for ; Sun, 30 May 2021 09:52:08 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=dabbelt-com.20150623.gappssmtp.com header.i=@dabbelt-com.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=w/ASenlr; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=dabbelt.com (client-ip=2607:f8b0:4864:20::529; helo=mail-pg1-x529.google.com; envelope-from=palmer@dabbelt.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=dabbelt-com.20150623.gappssmtp.com header.i=@dabbelt-com.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=w/ASenlr; dkim-atps=neutral Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Fsyy265RQz2xg1 for ; Sun, 30 May 2021 09:51:36 +1000 (AEST) Received: by mail-pg1-x529.google.com with SMTP id 27so5475439pgy.3 for ; Sat, 29 May 2021 16:51:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=w/ASenlrlYpoSgmPGAUNBpcrDCpZFcQhoW++hsBDOGf9S8cr4HPj9mCywbL3m32AB/ FkfDqqUTYjALltd8MsFQVzK+XJKnuB5uBffBtyuyNSbpEvY51Y+YSBcyozgpgVPIhsl4 gSkNAp/AZrPe1wwIb8UV011ifeU7vO4ukx6BuyLcM76tCvr1Uy/aoQq0EgTwtXI339ZE yvotJShBaEPsozN/z+qKcAcoWfuuffE+sy1Y2IKgiPOTeSJKRcqrZMljgjP+p6CReia5 ltKCmOEzmEjTPnBEqZmlyI5k3pTk5oxpJp0XPPe5YII8ZSbANX5Us7f8mWD7bzf7OiUF n5+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=UQfTtu3SxOJJbW6AyNsnFnmO9QjCu54IKRiaLT1l3aWcMFv+aP3gBK60zOQ811sXw2 VaGDaYkS9bQrhIK4tZGf+FWHx6JhwHd7ysuFZVfxrFz/mHRM3T3ZRianQbaMSLhEAnlW 1EaSBI0dxGd6lWh0bB4bRz8Zg3RfdOj0CvKvOzQ+G31RLieJEJGeNEdr61q+qR7Wjec7 9xcscZAf9ZLXK0UGlbXOHzK+etbE6k69thK7FENrDwv6tTf2C6XGg2YIJBrY2c7V8MKM dHXnKfQYb+VzJrOhVAVAZeTudQzChBQsnoLS3KtnjGhXazocIYK/bWOXOotqdrwgFenW 0Tew== X-Gm-Message-State: AOAM533dqpufUgnXGJ3EWad0mh2UYnSiyEfLZFazvpPKLoueLRbUs7sr 74Sa02nnYJlH37RMbXQ7SPAfXg== X-Google-Smtp-Source: ABdhPJxVMvbtNLEA8KHH03zcvYuWVttTsQO8pYCDwf0GD8YJkvMEKOKNYDHbevN2fpsnwnTRTOFYRA== X-Received: by 2002:a63:7204:: with SMTP id n4mr16027141pgc.78.1622332293157; Sat, 29 May 2021 16:51:33 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id g29sm7743523pgm.11.2021.05.29.16.51.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 May 2021 16:51:32 -0700 (PDT) Date: Sat, 29 May 2021 16:51:32 -0700 (PDT) X-Google-Original-Date: Sat, 29 May 2021 16:51:28 PDT (-0700) Subject: Re: [PATCH v2] mm: generalize ZONE_[DMA|DMA32] In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> From: Palmer Dabbelt To: wangkefeng.wang@huawei.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wangkefeng.wang@huawei.com, linux-ia64@vger.kernel.org, catalin.marinas@arm.com, linux-mm@kvack.org, sparclinux@vger.kernel.org, linux-riscv@lists.infradead.org, will@kernel.org, linux-s390@vger.kernel.org, linux@armlinux.org.uk, rppt@linux.ibm.com, mingo@redhat.com, geert@linux-m68k.org, linux-m68k@lists.linux-m68k.org, bp@alien8.de, linux-arm-kernel@lists.infradead.org, rth@twiddle.net, tsbogend@alpha.franken.de, linux-mips@vger.kernel.org, linux-alpha@vger.kernel.org, akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org, davem@davemloft.net Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Fri, 28 May 2021 00:45:57 PDT (-0700), wangkefeng.wang@huawei.com wrote: > ZONE_[DMA|DMA32] configs have duplicate definitions on platforms > that subscribe them. Instead, just make them generic options which > can be selected on applicable platforms. > > Also only x86/arm64 architectures could enable both ZONE_DMA and > ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone > configurable and visible on the two architectures. > > Cc: Andrew Morton > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Geert Uytterhoeven > Cc: Thomas Bogendoerfer > Cc: "David S. Miller" > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Palmer Dabbelt > Cc: Richard Henderson > Cc: Russell King > Acked-by: Catalin Marinas # for arm64 > Acked-by: Geert Uytterhoeven # for m68k > Acked-by: Mike Rapoport > Signed-off-by: Kefeng Wang Acked-by: Palmer Dabbelt # for RISC-V > --- > v2: > -i386 can't enable ZONE_DMA32, fix it. > -make ZONE_DMA default y on X86 as before. > -collect ACKs > > arch/alpha/Kconfig | 5 +---- > arch/arm/Kconfig | 3 --- > arch/arm64/Kconfig | 9 +-------- > arch/ia64/Kconfig | 4 +--- > arch/m68k/Kconfig | 5 +---- > arch/microblaze/Kconfig | 4 +--- > arch/mips/Kconfig | 7 ------- > arch/powerpc/Kconfig | 4 ---- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 5 +---- > arch/s390/Kconfig | 4 +--- > arch/sparc/Kconfig | 5 +---- > arch/x86/Kconfig | 15 ++------------- > mm/Kconfig | 12 ++++++++++++ > 14 files changed, 23 insertions(+), 60 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 5998106faa60..6a69a14c4825 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -40,6 +40,7 @@ config ALPHA > select MMU_GATHER_NO_RANGE > select SET_FS > select SPARSEMEM_EXTREME if SPARSEMEM > + select ZONE_DMA > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > @@ -65,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY > bool > default y > > -config ZONE_DMA > - bool > - default y > - > config GENERIC_ISA_DMA > bool > default y > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 24804f11302d..000c3f80b58e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -218,9 +218,6 @@ config GENERIC_CALIBRATE_DELAY > config ARCH_MAY_HAVE_PC_FDC > bool > > -config ZONE_DMA > - bool > - > config ARCH_SUPPORTS_UPROBES > def_bool y > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 9f1d8566bbf9..42794474f37f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -42,6 +42,7 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK if !PREEMPTION > @@ -307,14 +308,6 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > -config ZONE_DMA > - bool "Support DMA zone" if EXPERT > - default y > - > -config ZONE_DMA32 > - bool "Support DMA32 zone" if EXPERT > - default y > - > config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE > def_bool y > > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 279252e3e0f7..fd8503a0088a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -60,6 +60,7 @@ config IA64 > select NUMA if !FLATMEM > select PCI_MSI_ARCH_FALLBACKS if PCI_MSI > select SET_FS > + select ZONE_DMA32 > default y > help > The Itanium Processor Family is Intel's 64-bit successor to > @@ -72,9 +73,6 @@ config 64BIT > select ATA_NONSTANDARD if ATA > default y > > -config ZONE_DMA32 > - def_bool y > - > config MMU > bool > default y > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 372e4e69c43a..05a729c6ad7f 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -34,6 +34,7 @@ config M68K > select SET_FS > select UACCESS_MEMCPY if !MMU > select VIRT_TO_BUS > + select ZONE_DMA > > config CPU_BIG_ENDIAN > def_bool y > @@ -62,10 +63,6 @@ config TIME_LOW_RES > config NO_IOPORT_MAP > def_bool y > > -config ZONE_DMA > - bool > - default y > - > config HZ > int > default 1000 if CLEOPATRA > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 0660f47012bc..14a67a42fcae 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -43,6 +43,7 @@ config MICROBLAZE > select MMU_GATHER_NO_RANGE > select SPARSE_IRQ > select SET_FS > + select ZONE_DMA > > # Endianness selection > choice > @@ -60,9 +61,6 @@ config CPU_LITTLE_ENDIAN > > endchoice > > -config ZONE_DMA > - def_bool y > - > config ARCH_HAS_ILOG2_U32 > def_bool n > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ed51970c08e7..430d5324f1af 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -3277,13 +3277,6 @@ config I8253 > select CLKSRC_I8253 > select CLKEVT_I8253 > select MIPS_EXTERNAL_TIMER > - > -config ZONE_DMA > - bool > - > -config ZONE_DMA32 > - bool > - > endmenu > > config TRAD_SIGNALS > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 088dd2afcfe4..0f78bb383a12 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -403,10 +403,6 @@ config PPC_ADV_DEBUG_DAC_RANGE > config PPC_DAWR > bool > > -config ZONE_DMA > - bool > - default y if PPC_BOOK3E_64 > - > config PGTABLE_LEVELS > int > default 2 if !PPC64 > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index f998e655b570..7d271de8fcbd 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -111,6 +111,7 @@ config PPC_BOOK3E_64 > select PPC_FPU # Make it a choice ? > select PPC_SMP_MUXED_IPI > select PPC_DOORBELL > + select ZONE_DMA > > endchoice > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index a8ad8eb76120..d29643dee126 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -103,6 +103,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > + select ZONE_DMA32 if 64BIT > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT > @@ -132,10 +133,6 @@ config MMU > Select if you want MMU-based virtualised addressing space > support by paged memory management. If unsure, say 'Y'. > > -config ZONE_DMA32 > - bool > - default y if 64BIT > - > config VA_BITS > int > default 32 if 32BIT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index b4c7c34069f8..daab9d56957a 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -2,9 +2,6 @@ > config MMU > def_bool y > > -config ZONE_DMA > - def_bool y > - > config CPU_BIG_ENDIAN > def_bool y > > @@ -210,6 +207,7 @@ config S390 > select THREAD_INFO_IN_TASK > select TTY > select VIRT_CPU_ACCOUNTING > + select ZONE_DMA > # Note: keep the above list sorted alphabetically > > config SCHED_OMIT_FRAME_POINTER > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 164a5254c91c..39679664cc9a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -59,6 +59,7 @@ config SPARC32 > select CLZ_TAB > select HAVE_UID16 > select OLD_SIGACTION > + select ZONE_DMA > > config SPARC64 > def_bool 64BIT > @@ -141,10 +142,6 @@ config HIGHMEM > default y if SPARC32 > select KMAP_LOCAL > > -config ZONE_DMA > - bool > - default y if SPARC32 > - > config GENERIC_ISA_DMA > bool > default y if SPARC32 > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 0045e1b44190..11cf8a0d6800 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -33,6 +33,7 @@ config X86_64 > select NEED_DMA_MAP_STATE > select SWIOTLB > select ARCH_HAS_ELFCORE_COMPAT > + select ZONE_DMA32 > > config FORCE_DYNAMIC_FTRACE > def_bool y > @@ -93,6 +94,7 @@ config X86 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_DEBUG_WX > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI > select ARCH_MIGHT_HAVE_PC_PARPORT > @@ -343,9 +345,6 @@ config ARCH_SUSPEND_POSSIBLE > config ARCH_WANT_GENERAL_HUGETLB > def_bool y > > -config ZONE_DMA32 > - def_bool y if X86_64 > - > config AUDIT_ARCH > def_bool y if X86_64 > > @@ -393,16 +392,6 @@ config CC_HAS_SANE_STACKPROTECTOR > > menu "Processor type and features" > > -config ZONE_DMA > - bool "DMA memory allocation support" if EXPERT > - default y > - help > - DMA memory allocation support allows devices with less than 32-bit > - addressing to allocate within the first 16MB of address space. > - Disable if no such devices will be used. > - > - If unsure, say Y. > - > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..16930f40f293 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -789,6 +789,18 @@ config ARCH_HAS_CACHE_LINE_SIZE > config ARCH_HAS_PTE_DEVMAP > bool > > +config ARCH_HAS_ZONE_DMA_SET > + bool > + > +config ZONE_DMA > + bool "Support DMA zone" if ARCH_HAS_ZONE_DMA_SET > + default y if ARM64 || X86 > + > +config ZONE_DMA32 > + bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > + depends on !X86_32 > + default y if ARM64 > + > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > depends on MEMORY_HOTPLUG 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 X-Spam-Level: X-Spam-Status: No, score=-14.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 914BAC47082 for ; Sat, 29 May 2021 23:53:21 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 437D9610CE for ; Sat, 29 May 2021 23:53:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 437D9610CE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Mime-Version:Message-ID:To:From:CC:In-Reply-To: Subject:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:References:List-Owner; bh=kYmTQJvam8c/hJ7LvywdCSOSSwIEiBkRnsgMDpgILjM=; b=px1p0s8XmbpBLA5lAs1RVr+/AH wTCiZ+cgZI2mzbhhMwM7UQf3o0sediG0ocMSTiZgrTSME7leC1j7mGJ3lSuV1YH0YYzaCOFfkf1RP ImttMot+R2UtfuCNFot2y2VQ9OPuwQf8JAlxW1dcGQgCddmsMYNuN+2BFA8m0mAbgha4aALiHN1S3 vKMlSmFV6NecVFyBspER9b0Pa2zEqzu6b1l3sJwm+G34VXRMA3DYKyT3WhrbSNvy66V30RvEy6E1a LoTI5E2RMfoBZCG1ct/xUOcKVD/MzbIiu7PZrlh2p+QvEs+Nmnn64cY/GH0JqjSRjOqJg820BC8pH wUnEcddg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ln8jz-008cJM-B4; Sat, 29 May 2021 23:51:39 +0000 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ln8jt-008cI9-UE for linux-arm-kernel@lists.infradead.org; Sat, 29 May 2021 23:51:36 +0000 Received: by mail-pg1-x52d.google.com with SMTP id r1so5455490pgk.8 for ; Sat, 29 May 2021 16:51:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=w/ASenlrlYpoSgmPGAUNBpcrDCpZFcQhoW++hsBDOGf9S8cr4HPj9mCywbL3m32AB/ FkfDqqUTYjALltd8MsFQVzK+XJKnuB5uBffBtyuyNSbpEvY51Y+YSBcyozgpgVPIhsl4 gSkNAp/AZrPe1wwIb8UV011ifeU7vO4ukx6BuyLcM76tCvr1Uy/aoQq0EgTwtXI339ZE yvotJShBaEPsozN/z+qKcAcoWfuuffE+sy1Y2IKgiPOTeSJKRcqrZMljgjP+p6CReia5 ltKCmOEzmEjTPnBEqZmlyI5k3pTk5oxpJp0XPPe5YII8ZSbANX5Us7f8mWD7bzf7OiUF n5+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=qi3iNCJAo/xxEu45VLvgK+uvpIh/zwuJsR/KWWOs4Shl+w74UHt1Zdwn3S+YHiKyjf fulLfklgdDnzaiNeoAsYYQRw1VZaaHzQxBdCevStpvR92LgXxxMriQEBuMFiWKK7pInq bOHhV0Mlt/2n8lQmFOSQvoLcv7QQkH6w4y1RPweSKn1pddimkoEzsQq4O3FUziclUlOE 5U5q5yrXGcvXZooT5okZj/t2lDipfvphIDDWDqa4A/nHX0g0TIEvylTilgU42JLAWX1V SrJ1njY5Od5MrL2kMd5ETccXH6/oR1zkHFmRvyAAPnrpkr/eo1X5AvrQTgeKd+oLfa5Z CO9Q== X-Gm-Message-State: AOAM530vGXR/Po/satHW2aEHoxBhxRJ2fEDMZFhFzic9JxpIPcws+rh6 EYoMBW7N/r4dLPXM16ct91P7kA== X-Google-Smtp-Source: ABdhPJxVMvbtNLEA8KHH03zcvYuWVttTsQO8pYCDwf0GD8YJkvMEKOKNYDHbevN2fpsnwnTRTOFYRA== X-Received: by 2002:a63:7204:: with SMTP id n4mr16027141pgc.78.1622332293157; Sat, 29 May 2021 16:51:33 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id g29sm7743523pgm.11.2021.05.29.16.51.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 May 2021 16:51:32 -0700 (PDT) Date: Sat, 29 May 2021 16:51:32 -0700 (PDT) X-Google-Original-Date: Sat, 29 May 2021 16:51:28 PDT (-0700) Subject: Re: [PATCH v2] mm: generalize ZONE_[DMA|DMA32] In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> CC: akpm@linux-foundation.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, wangkefeng.wang@huawei.com, catalin.marinas@arm.com, will@kernel.org, geert@linux-m68k.org, tsbogend@alpha.franken.de, davem@davemloft.net, mingo@redhat.com, bp@alien8.de, rth@twiddle.net, linux@armlinux.org.uk, rppt@linux.ibm.com From: Palmer Dabbelt To: wangkefeng.wang@huawei.com Message-ID: Mime-Version: 1.0 (MHng) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210529_165133_989669_AF5857F0 X-CRM114-Status: GOOD ( 28.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, 28 May 2021 00:45:57 PDT (-0700), wangkefeng.wang@huawei.com wrote: > ZONE_[DMA|DMA32] configs have duplicate definitions on platforms > that subscribe them. Instead, just make them generic options which > can be selected on applicable platforms. > > Also only x86/arm64 architectures could enable both ZONE_DMA and > ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone > configurable and visible on the two architectures. > > Cc: Andrew Morton > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Geert Uytterhoeven > Cc: Thomas Bogendoerfer > Cc: "David S. Miller" > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Palmer Dabbelt > Cc: Richard Henderson > Cc: Russell King > Acked-by: Catalin Marinas # for arm64 > Acked-by: Geert Uytterhoeven # for m68k > Acked-by: Mike Rapoport > Signed-off-by: Kefeng Wang Acked-by: Palmer Dabbelt # for RISC-V > --- > v2: > -i386 can't enable ZONE_DMA32, fix it. > -make ZONE_DMA default y on X86 as before. > -collect ACKs > > arch/alpha/Kconfig | 5 +---- > arch/arm/Kconfig | 3 --- > arch/arm64/Kconfig | 9 +-------- > arch/ia64/Kconfig | 4 +--- > arch/m68k/Kconfig | 5 +---- > arch/microblaze/Kconfig | 4 +--- > arch/mips/Kconfig | 7 ------- > arch/powerpc/Kconfig | 4 ---- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 5 +---- > arch/s390/Kconfig | 4 +--- > arch/sparc/Kconfig | 5 +---- > arch/x86/Kconfig | 15 ++------------- > mm/Kconfig | 12 ++++++++++++ > 14 files changed, 23 insertions(+), 60 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 5998106faa60..6a69a14c4825 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -40,6 +40,7 @@ config ALPHA > select MMU_GATHER_NO_RANGE > select SET_FS > select SPARSEMEM_EXTREME if SPARSEMEM > + select ZONE_DMA > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > @@ -65,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY > bool > default y > > -config ZONE_DMA > - bool > - default y > - > config GENERIC_ISA_DMA > bool > default y > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 24804f11302d..000c3f80b58e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -218,9 +218,6 @@ config GENERIC_CALIBRATE_DELAY > config ARCH_MAY_HAVE_PC_FDC > bool > > -config ZONE_DMA > - bool > - > config ARCH_SUPPORTS_UPROBES > def_bool y > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 9f1d8566bbf9..42794474f37f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -42,6 +42,7 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK if !PREEMPTION > @@ -307,14 +308,6 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > -config ZONE_DMA > - bool "Support DMA zone" if EXPERT > - default y > - > -config ZONE_DMA32 > - bool "Support DMA32 zone" if EXPERT > - default y > - > config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE > def_bool y > > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 279252e3e0f7..fd8503a0088a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -60,6 +60,7 @@ config IA64 > select NUMA if !FLATMEM > select PCI_MSI_ARCH_FALLBACKS if PCI_MSI > select SET_FS > + select ZONE_DMA32 > default y > help > The Itanium Processor Family is Intel's 64-bit successor to > @@ -72,9 +73,6 @@ config 64BIT > select ATA_NONSTANDARD if ATA > default y > > -config ZONE_DMA32 > - def_bool y > - > config MMU > bool > default y > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 372e4e69c43a..05a729c6ad7f 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -34,6 +34,7 @@ config M68K > select SET_FS > select UACCESS_MEMCPY if !MMU > select VIRT_TO_BUS > + select ZONE_DMA > > config CPU_BIG_ENDIAN > def_bool y > @@ -62,10 +63,6 @@ config TIME_LOW_RES > config NO_IOPORT_MAP > def_bool y > > -config ZONE_DMA > - bool > - default y > - > config HZ > int > default 1000 if CLEOPATRA > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 0660f47012bc..14a67a42fcae 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -43,6 +43,7 @@ config MICROBLAZE > select MMU_GATHER_NO_RANGE > select SPARSE_IRQ > select SET_FS > + select ZONE_DMA > > # Endianness selection > choice > @@ -60,9 +61,6 @@ config CPU_LITTLE_ENDIAN > > endchoice > > -config ZONE_DMA > - def_bool y > - > config ARCH_HAS_ILOG2_U32 > def_bool n > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ed51970c08e7..430d5324f1af 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -3277,13 +3277,6 @@ config I8253 > select CLKSRC_I8253 > select CLKEVT_I8253 > select MIPS_EXTERNAL_TIMER > - > -config ZONE_DMA > - bool > - > -config ZONE_DMA32 > - bool > - > endmenu > > config TRAD_SIGNALS > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 088dd2afcfe4..0f78bb383a12 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -403,10 +403,6 @@ config PPC_ADV_DEBUG_DAC_RANGE > config PPC_DAWR > bool > > -config ZONE_DMA > - bool > - default y if PPC_BOOK3E_64 > - > config PGTABLE_LEVELS > int > default 2 if !PPC64 > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index f998e655b570..7d271de8fcbd 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -111,6 +111,7 @@ config PPC_BOOK3E_64 > select PPC_FPU # Make it a choice ? > select PPC_SMP_MUXED_IPI > select PPC_DOORBELL > + select ZONE_DMA > > endchoice > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index a8ad8eb76120..d29643dee126 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -103,6 +103,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > + select ZONE_DMA32 if 64BIT > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT > @@ -132,10 +133,6 @@ config MMU > Select if you want MMU-based virtualised addressing space > support by paged memory management. If unsure, say 'Y'. > > -config ZONE_DMA32 > - bool > - default y if 64BIT > - > config VA_BITS > int > default 32 if 32BIT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index b4c7c34069f8..daab9d56957a 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -2,9 +2,6 @@ > config MMU > def_bool y > > -config ZONE_DMA > - def_bool y > - > config CPU_BIG_ENDIAN > def_bool y > > @@ -210,6 +207,7 @@ config S390 > select THREAD_INFO_IN_TASK > select TTY > select VIRT_CPU_ACCOUNTING > + select ZONE_DMA > # Note: keep the above list sorted alphabetically > > config SCHED_OMIT_FRAME_POINTER > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 164a5254c91c..39679664cc9a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -59,6 +59,7 @@ config SPARC32 > select CLZ_TAB > select HAVE_UID16 > select OLD_SIGACTION > + select ZONE_DMA > > config SPARC64 > def_bool 64BIT > @@ -141,10 +142,6 @@ config HIGHMEM > default y if SPARC32 > select KMAP_LOCAL > > -config ZONE_DMA > - bool > - default y if SPARC32 > - > config GENERIC_ISA_DMA > bool > default y if SPARC32 > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 0045e1b44190..11cf8a0d6800 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -33,6 +33,7 @@ config X86_64 > select NEED_DMA_MAP_STATE > select SWIOTLB > select ARCH_HAS_ELFCORE_COMPAT > + select ZONE_DMA32 > > config FORCE_DYNAMIC_FTRACE > def_bool y > @@ -93,6 +94,7 @@ config X86 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_DEBUG_WX > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI > select ARCH_MIGHT_HAVE_PC_PARPORT > @@ -343,9 +345,6 @@ config ARCH_SUSPEND_POSSIBLE > config ARCH_WANT_GENERAL_HUGETLB > def_bool y > > -config ZONE_DMA32 > - def_bool y if X86_64 > - > config AUDIT_ARCH > def_bool y if X86_64 > > @@ -393,16 +392,6 @@ config CC_HAS_SANE_STACKPROTECTOR > > menu "Processor type and features" > > -config ZONE_DMA > - bool "DMA memory allocation support" if EXPERT > - default y > - help > - DMA memory allocation support allows devices with less than 32-bit > - addressing to allocate within the first 16MB of address space. > - Disable if no such devices will be used. > - > - If unsure, say Y. > - > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..16930f40f293 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -789,6 +789,18 @@ config ARCH_HAS_CACHE_LINE_SIZE > config ARCH_HAS_PTE_DEVMAP > bool > > +config ARCH_HAS_ZONE_DMA_SET > + bool > + > +config ZONE_DMA > + bool "Support DMA zone" if ARCH_HAS_ZONE_DMA_SET > + default y if ARM64 || X86 > + > +config ZONE_DMA32 > + bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > + depends on !X86_32 > + default y if ARM64 > + > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > depends on MEMORY_HOTPLUG _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Palmer Dabbelt Date: Sat, 29 May 2021 23:51:32 +0000 Subject: Re: [PATCH v2] mm: generalize ZONE_[DMA|DMA32] Message-Id: List-Id: In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> References: <20210528074557.17768-1-wangkefeng.wang@huawei.com> In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: wangkefeng.wang@huawei.com Cc: akpm@linux-foundation.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, catalin.marinas@arm.com, will@kernel.org, geert@linux-m68k.org, tsbogend@alpha.franken.de, davem@davemloft.net, mingo@redhat.com, bp@alien8.de, rth@twiddle.net, linux@armlinux.org.uk, rppt@linux.ibm.com On Fri, 28 May 2021 00:45:57 PDT (-0700), wangkefeng.wang@huawei.com wrote: > ZONE_[DMA|DMA32] configs have duplicate definitions on platforms > that subscribe them. Instead, just make them generic options which > can be selected on applicable platforms. > > Also only x86/arm64 architectures could enable both ZONE_DMA and > ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone > configurable and visible on the two architectures. > > Cc: Andrew Morton > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Geert Uytterhoeven > Cc: Thomas Bogendoerfer > Cc: "David S. Miller" > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Palmer Dabbelt > Cc: Richard Henderson > Cc: Russell King > Acked-by: Catalin Marinas # for arm64 > Acked-by: Geert Uytterhoeven # for m68k > Acked-by: Mike Rapoport > Signed-off-by: Kefeng Wang Acked-by: Palmer Dabbelt # for RISC-V > --- > v2: > -i386 can't enable ZONE_DMA32, fix it. > -make ZONE_DMA default y on X86 as before. > -collect ACKs > > arch/alpha/Kconfig | 5 +---- > arch/arm/Kconfig | 3 --- > arch/arm64/Kconfig | 9 +-------- > arch/ia64/Kconfig | 4 +--- > arch/m68k/Kconfig | 5 +---- > arch/microblaze/Kconfig | 4 +--- > arch/mips/Kconfig | 7 ------- > arch/powerpc/Kconfig | 4 ---- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 5 +---- > arch/s390/Kconfig | 4 +--- > arch/sparc/Kconfig | 5 +---- > arch/x86/Kconfig | 15 ++------------- > mm/Kconfig | 12 ++++++++++++ > 14 files changed, 23 insertions(+), 60 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 5998106faa60..6a69a14c4825 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -40,6 +40,7 @@ config ALPHA > select MMU_GATHER_NO_RANGE > select SET_FS > select SPARSEMEM_EXTREME if SPARSEMEM > + select ZONE_DMA > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > @@ -65,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY > bool > default y > > -config ZONE_DMA > - bool > - default y > - > config GENERIC_ISA_DMA > bool > default y > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 24804f11302d..000c3f80b58e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -218,9 +218,6 @@ config GENERIC_CALIBRATE_DELAY > config ARCH_MAY_HAVE_PC_FDC > bool > > -config ZONE_DMA > - bool > - > config ARCH_SUPPORTS_UPROBES > def_bool y > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 9f1d8566bbf9..42794474f37f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -42,6 +42,7 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK if !PREEMPTION > @@ -307,14 +308,6 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > -config ZONE_DMA > - bool "Support DMA zone" if EXPERT > - default y > - > -config ZONE_DMA32 > - bool "Support DMA32 zone" if EXPERT > - default y > - > config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE > def_bool y > > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 279252e3e0f7..fd8503a0088a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -60,6 +60,7 @@ config IA64 > select NUMA if !FLATMEM > select PCI_MSI_ARCH_FALLBACKS if PCI_MSI > select SET_FS > + select ZONE_DMA32 > default y > help > The Itanium Processor Family is Intel's 64-bit successor to > @@ -72,9 +73,6 @@ config 64BIT > select ATA_NONSTANDARD if ATA > default y > > -config ZONE_DMA32 > - def_bool y > - > config MMU > bool > default y > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 372e4e69c43a..05a729c6ad7f 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -34,6 +34,7 @@ config M68K > select SET_FS > select UACCESS_MEMCPY if !MMU > select VIRT_TO_BUS > + select ZONE_DMA > > config CPU_BIG_ENDIAN > def_bool y > @@ -62,10 +63,6 @@ config TIME_LOW_RES > config NO_IOPORT_MAP > def_bool y > > -config ZONE_DMA > - bool > - default y > - > config HZ > int > default 1000 if CLEOPATRA > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 0660f47012bc..14a67a42fcae 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -43,6 +43,7 @@ config MICROBLAZE > select MMU_GATHER_NO_RANGE > select SPARSE_IRQ > select SET_FS > + select ZONE_DMA > > # Endianness selection > choice > @@ -60,9 +61,6 @@ config CPU_LITTLE_ENDIAN > > endchoice > > -config ZONE_DMA > - def_bool y > - > config ARCH_HAS_ILOG2_U32 > def_bool n > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ed51970c08e7..430d5324f1af 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -3277,13 +3277,6 @@ config I8253 > select CLKSRC_I8253 > select CLKEVT_I8253 > select MIPS_EXTERNAL_TIMER > - > -config ZONE_DMA > - bool > - > -config ZONE_DMA32 > - bool > - > endmenu > > config TRAD_SIGNALS > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 088dd2afcfe4..0f78bb383a12 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -403,10 +403,6 @@ config PPC_ADV_DEBUG_DAC_RANGE > config PPC_DAWR > bool > > -config ZONE_DMA > - bool > - default y if PPC_BOOK3E_64 > - > config PGTABLE_LEVELS > int > default 2 if !PPC64 > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index f998e655b570..7d271de8fcbd 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -111,6 +111,7 @@ config PPC_BOOK3E_64 > select PPC_FPU # Make it a choice ? > select PPC_SMP_MUXED_IPI > select PPC_DOORBELL > + select ZONE_DMA > > endchoice > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index a8ad8eb76120..d29643dee126 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -103,6 +103,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > + select ZONE_DMA32 if 64BIT > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT > @@ -132,10 +133,6 @@ config MMU > Select if you want MMU-based virtualised addressing space > support by paged memory management. If unsure, say 'Y'. > > -config ZONE_DMA32 > - bool > - default y if 64BIT > - > config VA_BITS > int > default 32 if 32BIT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index b4c7c34069f8..daab9d56957a 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -2,9 +2,6 @@ > config MMU > def_bool y > > -config ZONE_DMA > - def_bool y > - > config CPU_BIG_ENDIAN > def_bool y > > @@ -210,6 +207,7 @@ config S390 > select THREAD_INFO_IN_TASK > select TTY > select VIRT_CPU_ACCOUNTING > + select ZONE_DMA > # Note: keep the above list sorted alphabetically > > config SCHED_OMIT_FRAME_POINTER > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 164a5254c91c..39679664cc9a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -59,6 +59,7 @@ config SPARC32 > select CLZ_TAB > select HAVE_UID16 > select OLD_SIGACTION > + select ZONE_DMA > > config SPARC64 > def_bool 64BIT > @@ -141,10 +142,6 @@ config HIGHMEM > default y if SPARC32 > select KMAP_LOCAL > > -config ZONE_DMA > - bool > - default y if SPARC32 > - > config GENERIC_ISA_DMA > bool > default y if SPARC32 > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 0045e1b44190..11cf8a0d6800 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -33,6 +33,7 @@ config X86_64 > select NEED_DMA_MAP_STATE > select SWIOTLB > select ARCH_HAS_ELFCORE_COMPAT > + select ZONE_DMA32 > > config FORCE_DYNAMIC_FTRACE > def_bool y > @@ -93,6 +94,7 @@ config X86 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_DEBUG_WX > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI > select ARCH_MIGHT_HAVE_PC_PARPORT > @@ -343,9 +345,6 @@ config ARCH_SUSPEND_POSSIBLE > config ARCH_WANT_GENERAL_HUGETLB > def_bool y > > -config ZONE_DMA32 > - def_bool y if X86_64 > - > config AUDIT_ARCH > def_bool y if X86_64 > > @@ -393,16 +392,6 @@ config CC_HAS_SANE_STACKPROTECTOR > > menu "Processor type and features" > > -config ZONE_DMA > - bool "DMA memory allocation support" if EXPERT > - default y > - help > - DMA memory allocation support allows devices with less than 32-bit > - addressing to allocate within the first 16MB of address space. > - Disable if no such devices will be used. > - > - If unsure, say Y. > - > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..16930f40f293 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -789,6 +789,18 @@ config ARCH_HAS_CACHE_LINE_SIZE > config ARCH_HAS_PTE_DEVMAP > bool > > +config ARCH_HAS_ZONE_DMA_SET > + bool > + > +config ZONE_DMA > + bool "Support DMA zone" if ARCH_HAS_ZONE_DMA_SET > + default y if ARM64 || X86 > + > +config ZONE_DMA32 > + bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > + depends on !X86_32 > + default y if ARM64 > + > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > depends on MEMORY_HOTPLUG From mboxrd@z Thu Jan 1 00:00:00 1970 From: Palmer Dabbelt Subject: Re: [PATCH v2] mm: generalize ZONE_[DMA|DMA32] Date: Sat, 29 May 2021 16:51:32 -0700 (PDT) Message-ID: References: <20210528074557.17768-1-wangkefeng.wang@huawei.com> Mime-Version: 1.0 (MHng) Content-Transfer-Encoding: 8bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20150623.gappssmtp.com; s=20150623; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=8UImWCr2XVFitJoBQVTHt3iV6JOy0UxslMS+oB/yncg=; b=w/ASenlrlYpoSgmPGAUNBpcrDCpZFcQhoW++hsBDOGf9S8cr4HPj9mCywbL3m32AB/ FkfDqqUTYjALltd8MsFQVzK+XJKnuB5uBffBtyuyNSbpEvY51Y+YSBcyozgpgVPIhsl4 gSkNAp/AZrPe1wwIb8UV011ifeU7vO4ukx6BuyLcM76tCvr1Uy/aoQq0EgTwtXI339ZE yvotJShBaEPsozN/z+qKcAcoWfuuffE+sy1Y2IKgiPOTeSJKRcqrZMljgjP+p6CReia5 ltKCmOEzmEjTPnBEqZmlyI5k3pTk5oxpJp0XPPe5YII8ZSbANX5Us7f8mWD7bzf7OiUF n5+g== In-Reply-To: <20210528074557.17768-1-wangkefeng.wang@huawei.com> List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" Cc: akpm@linux-foundation.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-mm@kvack.org, wangkefeng.wang@huawei.com, catalin.marinas@arm.com, will@kernel.org, geert@linux-m68k.org, tsbogend@alpha.franken.de, davem@davemloft.net, mingo@redhat.com, bp@alien8.de, rth@twiddle.net, linux@armlinux.org.uk, rppt@linux.ibm.com On Fri, 28 May 2021 00:45:57 PDT (-0700), wangkefeng.wang@huawei.com wrote: > ZONE_[DMA|DMA32] configs have duplicate definitions on platforms > that subscribe them. Instead, just make them generic options which > can be selected on applicable platforms. > > Also only x86/arm64 architectures could enable both ZONE_DMA and > ZONE_DMA32 if EXPERT, add ARCH_HAS_ZONE_DMA_SET to make dma zone > configurable and visible on the two architectures. > > Cc: Andrew Morton > Cc: Catalin Marinas > Cc: Will Deacon > Cc: Geert Uytterhoeven > Cc: Thomas Bogendoerfer > Cc: "David S. Miller" > Cc: Ingo Molnar > Cc: Borislav Petkov > Cc: Palmer Dabbelt > Cc: Richard Henderson > Cc: Russell King > Acked-by: Catalin Marinas # for arm64 > Acked-by: Geert Uytterhoeven # for m68k > Acked-by: Mike Rapoport > Signed-off-by: Kefeng Wang Acked-by: Palmer Dabbelt # for RISC-V > --- > v2: > -i386 can't enable ZONE_DMA32, fix it. > -make ZONE_DMA default y on X86 as before. > -collect ACKs > > arch/alpha/Kconfig | 5 +---- > arch/arm/Kconfig | 3 --- > arch/arm64/Kconfig | 9 +-------- > arch/ia64/Kconfig | 4 +--- > arch/m68k/Kconfig | 5 +---- > arch/microblaze/Kconfig | 4 +--- > arch/mips/Kconfig | 7 ------- > arch/powerpc/Kconfig | 4 ---- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 5 +---- > arch/s390/Kconfig | 4 +--- > arch/sparc/Kconfig | 5 +---- > arch/x86/Kconfig | 15 ++------------- > mm/Kconfig | 12 ++++++++++++ > 14 files changed, 23 insertions(+), 60 deletions(-) > > diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig > index 5998106faa60..6a69a14c4825 100644 > --- a/arch/alpha/Kconfig > +++ b/arch/alpha/Kconfig > @@ -40,6 +40,7 @@ config ALPHA > select MMU_GATHER_NO_RANGE > select SET_FS > select SPARSEMEM_EXTREME if SPARSEMEM > + select ZONE_DMA > help > The Alpha is a 64-bit general-purpose processor designed and > marketed by the Digital Equipment Corporation of blessed memory, > @@ -65,10 +66,6 @@ config GENERIC_CALIBRATE_DELAY > bool > default y > > -config ZONE_DMA > - bool > - default y > - > config GENERIC_ISA_DMA > bool > default y > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 24804f11302d..000c3f80b58e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -218,9 +218,6 @@ config GENERIC_CALIBRATE_DELAY > config ARCH_MAY_HAVE_PC_FDC > bool > > -config ZONE_DMA > - bool > - > config ARCH_SUPPORTS_UPROBES > def_bool y > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 9f1d8566bbf9..42794474f37f 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -42,6 +42,7 @@ config ARM64 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_TEARDOWN_DMA_OPS if IOMMU_SUPPORT > select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_ELF_PROT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_INLINE_READ_LOCK if !PREEMPTION > @@ -307,14 +308,6 @@ config GENERIC_CSUM > config GENERIC_CALIBRATE_DELAY > def_bool y > > -config ZONE_DMA > - bool "Support DMA zone" if EXPERT > - default y > - > -config ZONE_DMA32 > - bool "Support DMA32 zone" if EXPERT > - default y > - > config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE > def_bool y > > diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig > index 279252e3e0f7..fd8503a0088a 100644 > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -60,6 +60,7 @@ config IA64 > select NUMA if !FLATMEM > select PCI_MSI_ARCH_FALLBACKS if PCI_MSI > select SET_FS > + select ZONE_DMA32 > default y > help > The Itanium Processor Family is Intel's 64-bit successor to > @@ -72,9 +73,6 @@ config 64BIT > select ATA_NONSTANDARD if ATA > default y > > -config ZONE_DMA32 > - def_bool y > - > config MMU > bool > default y > diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig > index 372e4e69c43a..05a729c6ad7f 100644 > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -34,6 +34,7 @@ config M68K > select SET_FS > select UACCESS_MEMCPY if !MMU > select VIRT_TO_BUS > + select ZONE_DMA > > config CPU_BIG_ENDIAN > def_bool y > @@ -62,10 +63,6 @@ config TIME_LOW_RES > config NO_IOPORT_MAP > def_bool y > > -config ZONE_DMA > - bool > - default y > - > config HZ > int > default 1000 if CLEOPATRA > diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig > index 0660f47012bc..14a67a42fcae 100644 > --- a/arch/microblaze/Kconfig > +++ b/arch/microblaze/Kconfig > @@ -43,6 +43,7 @@ config MICROBLAZE > select MMU_GATHER_NO_RANGE > select SPARSE_IRQ > select SET_FS > + select ZONE_DMA > > # Endianness selection > choice > @@ -60,9 +61,6 @@ config CPU_LITTLE_ENDIAN > > endchoice > > -config ZONE_DMA > - def_bool y > - > config ARCH_HAS_ILOG2_U32 > def_bool n > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index ed51970c08e7..430d5324f1af 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -3277,13 +3277,6 @@ config I8253 > select CLKSRC_I8253 > select CLKEVT_I8253 > select MIPS_EXTERNAL_TIMER > - > -config ZONE_DMA > - bool > - > -config ZONE_DMA32 > - bool > - > endmenu > > config TRAD_SIGNALS > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index 088dd2afcfe4..0f78bb383a12 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -403,10 +403,6 @@ config PPC_ADV_DEBUG_DAC_RANGE > config PPC_DAWR > bool > > -config ZONE_DMA > - bool > - default y if PPC_BOOK3E_64 > - > config PGTABLE_LEVELS > int > default 2 if !PPC64 > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index f998e655b570..7d271de8fcbd 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -111,6 +111,7 @@ config PPC_BOOK3E_64 > select PPC_FPU # Make it a choice ? > select PPC_SMP_MUXED_IPI > select PPC_DOORBELL > + select ZONE_DMA > > endchoice > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index a8ad8eb76120..d29643dee126 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -103,6 +103,7 @@ config RISCV > select SYSCTL_EXCEPTION_TRACE > select THREAD_INFO_IN_TASK > select UACCESS_MEMCPY if !MMU > + select ZONE_DMA32 if 64BIT > > config ARCH_MMAP_RND_BITS_MIN > default 18 if 64BIT > @@ -132,10 +133,6 @@ config MMU > Select if you want MMU-based virtualised addressing space > support by paged memory management. If unsure, say 'Y'. > > -config ZONE_DMA32 > - bool > - default y if 64BIT > - > config VA_BITS > int > default 32 if 32BIT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index b4c7c34069f8..daab9d56957a 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -2,9 +2,6 @@ > config MMU > def_bool y > > -config ZONE_DMA > - def_bool y > - > config CPU_BIG_ENDIAN > def_bool y > > @@ -210,6 +207,7 @@ config S390 > select THREAD_INFO_IN_TASK > select TTY > select VIRT_CPU_ACCOUNTING > + select ZONE_DMA > # Note: keep the above list sorted alphabetically > > config SCHED_OMIT_FRAME_POINTER > diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig > index 164a5254c91c..39679664cc9a 100644 > --- a/arch/sparc/Kconfig > +++ b/arch/sparc/Kconfig > @@ -59,6 +59,7 @@ config SPARC32 > select CLZ_TAB > select HAVE_UID16 > select OLD_SIGACTION > + select ZONE_DMA > > config SPARC64 > def_bool 64BIT > @@ -141,10 +142,6 @@ config HIGHMEM > default y if SPARC32 > select KMAP_LOCAL > > -config ZONE_DMA > - bool > - default y if SPARC32 > - > config GENERIC_ISA_DMA > bool > default y if SPARC32 > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 0045e1b44190..11cf8a0d6800 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -33,6 +33,7 @@ config X86_64 > select NEED_DMA_MAP_STATE > select SWIOTLB > select ARCH_HAS_ELFCORE_COMPAT > + select ZONE_DMA32 > > config FORCE_DYNAMIC_FTRACE > def_bool y > @@ -93,6 +94,7 @@ config X86 > select ARCH_HAS_SYSCALL_WRAPPER > select ARCH_HAS_UBSAN_SANITIZE_ALL > select ARCH_HAS_DEBUG_WX > + select ARCH_HAS_ZONE_DMA_SET if EXPERT > select ARCH_HAVE_NMI_SAFE_CMPXCHG > select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI > select ARCH_MIGHT_HAVE_PC_PARPORT > @@ -343,9 +345,6 @@ config ARCH_SUSPEND_POSSIBLE > config ARCH_WANT_GENERAL_HUGETLB > def_bool y > > -config ZONE_DMA32 > - def_bool y if X86_64 > - > config AUDIT_ARCH > def_bool y if X86_64 > > @@ -393,16 +392,6 @@ config CC_HAS_SANE_STACKPROTECTOR > > menu "Processor type and features" > > -config ZONE_DMA > - bool "DMA memory allocation support" if EXPERT > - default y > - help > - DMA memory allocation support allows devices with less than 32-bit > - addressing to allocate within the first 16MB of address space. > - Disable if no such devices will be used. > - > - If unsure, say Y. > - > config SMP > bool "Symmetric multi-processing support" > help > diff --git a/mm/Kconfig b/mm/Kconfig > index 02d44e3420f5..16930f40f293 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -789,6 +789,18 @@ config ARCH_HAS_CACHE_LINE_SIZE > config ARCH_HAS_PTE_DEVMAP > bool > > +config ARCH_HAS_ZONE_DMA_SET > + bool > + > +config ZONE_DMA > + bool "Support DMA zone" if ARCH_HAS_ZONE_DMA_SET > + default y if ARM64 || X86 > + > +config ZONE_DMA32 > + bool "Support DMA32 zone" if ARCH_HAS_ZONE_DMA_SET > + depends on !X86_32 > + default y if ARM64 > + > config ZONE_DEVICE > bool "Device memory (pmem, HMM, etc...) hotplug support" > depends on MEMORY_HOTPLUG