summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaehoon Kim <jhkim@linux.ibm.com>2026-05-19 11:49:39 -0500
committerVasily Gorbik <gor@linux.ibm.com>2026-07-30 00:29:07 +0200
commit14ddf10e93d4404731b0c07d4df7f3bb4068ca01 (patch)
tree8a5c090f40578eedffc122fc418811f3cc9c853f
parent28b0d6897484aa6119ac63d813afd6f31d1b8246 (diff)
downloadlinux-next-14ddf10e93d4404731b0c07d4df7f3bb4068ca01.tar.gz
linux-next-14ddf10e93d4404731b0c07d4df7f3bb4068ca01.zip
s390: Select SWIOTLB_DYNAMIC and DMA_COHERENT_POOL
SWIOTLB_DYNAMIC allows the SWIOTLB to grow on demand when the initial bounce-buffer area is exhausted, instead of relying only on the pool reserved at boot. This improves behavior under sustained I/O pressure. In testing, exhaustion of the initial SWIOTLB area was observed under real workloads such as large file transfers and package installation workloads, where continued availability of bounce buffering was needed to avoid guest-visible I/O stalls or failures. When the current SWIOTLB capacity is exhausted, the dynamic expansion path schedules asynchronous pool growth and then attempts immediate non-blocking allocation of transient bounce-buffer memory. In that path, the current implementation uses the generic DMA coherent atomic pool for transient bounce-buffer allocations. Selecting DMA_COHERENT_POOL together with SWIOTLB_DYNAMIC on s390 makes that atomic fallback path available. The coherent atomic pool is a generic DMA facility. By default, its size is 128 KiB per 1 GiB of memory, with a minimum default size of 128 KiB, and it can be adjusted with the coherent_pool= kernel parameter. The pool itself can be exhausted, so this improves behavior under pressure, but does not guarantee that DMA mappings will always succeed. Select both options from s390 Kconfig so this support is available by default on s390 systems. Signed-off-by: Jaehoon Kim <jhkim@linux.ibm.com> Acked-by: Niklas Schnelle <schnelle@linux.ibm.com> Reviewed-by: Halil Pasic <pasic@linux.ibm.com> Tested-by: Joshua Daley <jdaley@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
-rw-r--r--arch/s390/Kconfig2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 3b9d352cadef..6ceae6f61ebb 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -278,6 +278,8 @@ config S390
select PCI_QUIRKS if PCI
select SPARSE_IRQ
select SWIOTLB
+ select SWIOTLB_DYNAMIC
+ select DMA_COHERENT_POOL
select SYSCTL_EXCEPTION_TRACE
select SYSTEM_DATA_VERIFICATION if KEXEC_SIG
select THREAD_INFO_IN_TASK