From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Christoph Hellwig <hch@lst.de>, sstabellini@kernel.org
Cc: linux-mips@linux-mips.org, linux-pci@vger.kernel.org,
x86@kernel.org, linux-block@vger.kernel.org, linux-mm@kvack.org,
iommu@lists.linux-foundation.org, sparclinux@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 11/12] swiotlb: move the SWIOTLB config symbol to lib/Kconfig
Date: Mon, 23 Apr 2018 16:11:27 -0400 [thread overview]
Message-ID: <20180423201127.GC5215@char.us.oracle.com> (raw)
In-Reply-To: <20180423170419.20330-12-hch@lst.de>
On Mon, Apr 23, 2018 at 07:04:18PM +0200, Christoph Hellwig wrote:
> This way we have one central definition of it, and user can select it as
> needed. Note that we also add a second ARCH_HAS_SWIOTLB symbol to
> indicate the architecture supports swiotlb at all, so that we can still
> make the usage optional for a few architectures that want this feature
> to be user selectable.
If I follow this select business this will enable it on ARM and x86 by default.
As such:
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thank you!
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> arch/arm/Kconfig | 4 +---
> arch/arm64/Kconfig | 5 ++---
> arch/ia64/Kconfig | 9 +--------
> arch/mips/Kconfig | 3 +++
> arch/mips/cavium-octeon/Kconfig | 5 -----
> arch/mips/loongson64/Kconfig | 8 --------
> arch/powerpc/Kconfig | 9 ---------
> arch/unicore32/mm/Kconfig | 5 -----
> arch/x86/Kconfig | 14 +++-----------
> lib/Kconfig | 15 +++++++++++++++
> 10 files changed, 25 insertions(+), 52 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 90b81a3a28a7..f91f69174630 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -106,6 +106,7 @@ config ARM
> select REFCOUNT_FULL
> select RTC_LIB
> select SYS_SUPPORTS_APM_EMULATION
> + select ARCH_HAS_SWIOTLB
> # Above selects are sorted alphabetically; please add new ones
> # according to that. Thanks.
> help
> @@ -1773,9 +1774,6 @@ config SECCOMP
> and the task is only allowed to execute a few safe syscalls
> defined by each seccomp mode.
>
> -config SWIOTLB
> - bool
> -
> config PARAVIRT
> bool "Enable paravirtualization code"
> help
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 4d924eb32e7f..056bc7365adf 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -21,6 +21,7 @@ config ARM64
> select ARCH_HAS_SG_CHAIN
> select ARCH_HAS_STRICT_KERNEL_RWX
> select ARCH_HAS_STRICT_MODULE_RWX
> + select ARCH_HAS_SWIOTLB
> select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
> select ARCH_HAVE_NMI_SAFE_CMPXCHG
> select ARCH_INLINE_READ_LOCK if !PREEMPT
> @@ -144,6 +145,7 @@ config ARM64
> select POWER_SUPPLY
> select REFCOUNT_FULL
> select SPARSE_IRQ
> + select SWIOTLB
> select SYSCTL_EXCEPTION_TRACE
> select THREAD_INFO_IN_TASK
> help
> @@ -239,9 +241,6 @@ config HAVE_GENERIC_GUP
> config SMP
> def_bool y
>
> -config SWIOTLB
> - def_bool y
> -
> config KERNEL_MODE_NEON
> def_bool y
>
> diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
> index 685d557eea48..d396230913e6 100644
> --- a/arch/ia64/Kconfig
> +++ b/arch/ia64/Kconfig
> @@ -56,6 +56,7 @@ config IA64
> select HAVE_ARCH_AUDITSYSCALL
> select NEED_DMA_MAP_STATE
> select NEED_SG_DMA_LENGTH
> + select ARCH_HAS_SWIOTLB
> default y
> help
> The Itanium Processor Family is Intel's 64-bit successor to
> @@ -80,9 +81,6 @@ config MMU
> bool
> default y
>
> -config SWIOTLB
> - bool
> -
> config STACKTRACE_SUPPORT
> def_bool y
>
> @@ -139,7 +137,6 @@ config IA64_GENERIC
> bool "generic"
> select NUMA
> select ACPI_NUMA
> - select DMA_DIRECT_OPS
> select SWIOTLB
> select PCI_MSI
> help
> @@ -160,7 +157,6 @@ config IA64_GENERIC
>
> config IA64_DIG
> bool "DIG-compliant"
> - select DMA_DIRECT_OPS
> select SWIOTLB
>
> config IA64_DIG_VTD
> @@ -176,7 +172,6 @@ config IA64_HP_ZX1
>
> config IA64_HP_ZX1_SWIOTLB
> bool "HP-zx1/sx1000 with software I/O TLB"
> - select DMA_DIRECT_OPS
> select SWIOTLB
> help
> Build a kernel that runs on HP zx1 and sx1000 systems even when they
> @@ -200,7 +195,6 @@ config IA64_SGI_UV
> bool "SGI-UV"
> select NUMA
> select ACPI_NUMA
> - select DMA_DIRECT_OPS
> select SWIOTLB
> help
> Selecting this option will optimize the kernel for use on UV based
> @@ -211,7 +205,6 @@ config IA64_SGI_UV
>
> config IA64_HP_SIM
> bool "Ski-simulator"
> - select DMA_DIRECT_OPS
> select SWIOTLB
> depends on !PM
>
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index e10cc5c7be69..b6b4c1e154f8 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -912,6 +912,8 @@ config CAVIUM_OCTEON_SOC
> select MIPS_NR_CPU_NR_MAP_1024
> select BUILTIN_DTB
> select MTD_COMPLEX_MAPPINGS
> + select ARCH_HAS_SWIOTLB
> + select SWIOTLB
> select SYS_SUPPORTS_RELOCATABLE
> help
> This option supports all of the Octeon reference boards from Cavium
> @@ -1367,6 +1369,7 @@ config CPU_LOONGSON3
> select MIPS_PGD_C0_CONTEXT
> select MIPS_L1_CACHE_SHIFT_6
> select GPIOLIB
> + select ARCH_HAS_SWIOTLB
> help
> The Loongson 3 processor implements the MIPS64R2 instruction
> set with many extensions.
> diff --git a/arch/mips/cavium-octeon/Kconfig b/arch/mips/cavium-octeon/Kconfig
> index 5d73041547a7..4984e462be30 100644
> --- a/arch/mips/cavium-octeon/Kconfig
> +++ b/arch/mips/cavium-octeon/Kconfig
> @@ -67,11 +67,6 @@ config CAVIUM_OCTEON_LOCK_L2_MEMCPY
> help
> Lock the kernel's implementation of memcpy() into L2.
>
> -config SWIOTLB
> - def_bool y
> - select DMA_DIRECT_OPS
> - select NEED_SG_DMA_LENGTH
> -
> config OCTEON_ILM
> tristate "Module to measure interrupt latency using Octeon CIU Timer"
> help
> diff --git a/arch/mips/loongson64/Kconfig b/arch/mips/loongson64/Kconfig
> index 641a1477031e..c79e6a565572 100644
> --- a/arch/mips/loongson64/Kconfig
> +++ b/arch/mips/loongson64/Kconfig
> @@ -130,14 +130,6 @@ config LOONGSON_UART_BASE
> default y
> depends on EARLY_PRINTK || SERIAL_8250
>
> -config SWIOTLB
> - bool "Soft IOMMU Support for All-Memory DMA"
> - default y
> - depends on CPU_LOONGSON3
> - select DMA_DIRECT_OPS
> - select NEED_SG_DMA_LENGTH
> - select NEED_DMA_MAP_STATE
> -
> config PHYS48_TO_HT40
> bool
> default y if CPU_LOONGSON3
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index a4b2ac7c3d2e..1887f8f86a77 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -474,15 +474,6 @@ config MPROFILE_KERNEL
> depends on PPC64 && CPU_LITTLE_ENDIAN
> def_bool !DISABLE_MPROFILE_KERNEL
>
> -config SWIOTLB
> - bool "SWIOTLB support"
> - default n
> - ---help---
> - Support for IO bounce buffering for systems without an IOMMU.
> - This allows us to DMA to the full physical address space on
> - platforms where the size of a physical address is larger
> - than the bus address. Not all platforms support this.
> -
> config HOTPLUG_CPU
> bool "Support for enabling/disabling CPUs"
> depends on SMP && (PPC_PSERIES || \
> diff --git a/arch/unicore32/mm/Kconfig b/arch/unicore32/mm/Kconfig
> index 1d9fed0ada71..82759b6aba67 100644
> --- a/arch/unicore32/mm/Kconfig
> +++ b/arch/unicore32/mm/Kconfig
> @@ -39,8 +39,3 @@ config CPU_TLB_SINGLE_ENTRY_DISABLE
> default y
> help
> Say Y here to disable the TLB single entry operations.
> -
> -config SWIOTLB
> - def_bool y
> - select DMA_DIRECT_OPS
> - select NEED_SG_DMA_LENGTH
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 07b031f99eb1..7a5fec800992 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -24,6 +24,7 @@ config X86_64
> depends on 64BIT
> # Options that are inherently 64-bit kernel only:
> select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA
> + select ARCH_HAS_SWIOTLB
> select ARCH_SUPPORTS_INT128
> select ARCH_USE_CMPXCHG_LOCKREF
> select HAVE_ARCH_SOFT_DIRTY
> @@ -677,6 +678,7 @@ config STA2X11
> bool "STA2X11 Companion Chip Support"
> depends on X86_32_NON_STANDARD && PCI
> select ARCH_HAS_PHYS_TO_DMA
> + select ARCH_HAS_SWIOTLB
> select X86_DEV_DMA_OPS
> select X86_DMA_REMAP
> select SWIOTLB
> @@ -916,17 +918,6 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
> Calgary anyway, pass 'iommu=calgary' on the kernel command line.
> If unsure, say Y.
>
> -# need this always selected by IOMMU for the VIA workaround
> -config SWIOTLB
> - def_bool y if X86_64
> - select NEED_DMA_MAP_STATE
> - ---help---
> - Support for software bounce buffers used on x86-64 systems
> - which don't have a hardware IOMMU. Using this PCI devices
> - which can only access 32-bits of memory can be used on systems
> - with more than 3 GB of memory.
> - If unsure, say Y.
> -
> config MAXSMP
> bool "Enable Maximum number of SMP Processors and NUMA Nodes"
> depends on X86_64 && SMP && DEBUG_KERNEL
> @@ -1448,6 +1439,7 @@ config HIGHMEM
> config X86_PAE
> bool "PAE (Physical Address Extension) Support"
> depends on X86_32 && !HIGHMEM4G
> + select ARCH_HAS_SWIOTLB
> select PHYS_ADDR_T_64BIT
> select SWIOTLB
> ---help---
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 1f12faf03819..01a37920949c 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -451,6 +451,21 @@ config DMA_VIRT_OPS
> depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
> default n
>
> +config ARCH_HAS_SWIOTLB
> + bool
> +
> +config SWIOTLB
> + bool "SWIOTLB support"
> + default ARCH_HAS_SWIOTLB
> + select DMA_DIRECT_OPS
> + select NEED_DMA_MAP_STATE
> + select NEED_SG_DMA_LENGTH
> + ---help---
> + Support for IO bounce buffering for systems without an IOMMU.
> + This allows us to DMA to the full physical address space on
> + platforms where the size of a physical address is larger
> + than the bus address. If unsure, say Y.
> +
> config CHECK_SIGNATURE
> bool
>
> --
> 2.17.0
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2018-04-23 20:11 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-23 17:04 centralize SWIOTLB config symbol and misc other cleanups V2 Christoph Hellwig
2018-04-23 17:04 ` [PATCH 01/12] iommu-common: move to arch/sparc Christoph Hellwig
2018-04-23 17:04 ` [PATCH 02/12] iommu-helper: unexport iommu_area_alloc Christoph Hellwig
2018-04-23 17:04 ` [PATCH 03/12] iommu-helper: mark iommu_is_span_boundary as inline Christoph Hellwig
2018-04-23 17:04 ` [PATCH 04/12] iommu-helper: move the IOMMU_HELPER config symbol to lib/ Christoph Hellwig
2018-04-23 17:04 ` [PATCH 05/12] scatterlist: move the NEED_SG_DMA_LENGTH config symbol to lib/Kconfig Christoph Hellwig
2018-04-23 17:04 ` [PATCH 06/12] dma-mapping: move the NEED_DMA_MAP_STATE " Christoph Hellwig
2018-04-23 17:04 ` [PATCH 07/12] arch: remove the ARCH_PHYS_ADDR_T_64BIT config symbol Christoph Hellwig
2018-04-23 17:04 ` [PATCH 08/12] arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig Christoph Hellwig
2018-04-23 17:04 ` [PATCH 09/12] PCI: remove CONFIG_PCI_BUS_ADDR_T_64BIT Christoph Hellwig
2018-04-23 17:04 ` [PATCH 10/12] arm: don't build swiotlb by default Christoph Hellwig
2018-04-23 20:09 ` Konrad Rzeszutek Wilk
2018-04-23 17:04 ` [PATCH 11/12] swiotlb: move the SWIOTLB config symbol to lib/Kconfig Christoph Hellwig
2018-04-23 20:11 ` Konrad Rzeszutek Wilk [this message]
2018-04-23 23:52 ` Russell King - ARM Linux
2018-04-24 6:55 ` Christoph Hellwig
2018-04-24 7:47 ` Russell King - ARM Linux
2018-04-24 7:56 ` Christoph Hellwig
2018-04-23 17:04 ` [PATCH 12/12] swiotlb: remove the CONFIG_DMA_DIRECT_OPS ifdefs Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2018-04-15 14:59 centralize SWIOTLB config symbol and misc other cleanups Christoph Hellwig
2018-04-15 14:59 ` [PATCH 11/12] swiotlb: move the SWIOTLB config symbol to lib/Kconfig Christoph Hellwig
2018-04-17 6:10 ` Anshuman Khandual
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180423201127.GC5215@char.us.oracle.com \
--to=konrad.wilk@oracle.com \
--cc=hch@lst.de \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-mm@kvack.org \
--cc=linux-pci@vger.kernel.org \
--cc=sparclinux@vger.kernel.org \
--cc=sstabellini@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).