From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39091257827 for ; Tue, 16 Jun 2026 21:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781645790; cv=none; b=NRYUF777+XpSdD+wrgUSw8RVrDCUe1iDKwoJCPAff85UCB8MEEToRXke0uUj7rPTsxgbZA+5UM1O1MLot3jmNerEpfC+DASPAjviWlxYqIcNptJANo94oOaZoA5ZMYgdpSbpd7ZObyHKgqaI5e2JyMkkBchXszwUXxbDhJBVQ9Q= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781645790; c=relaxed/simple; bh=dMAa0lMZQHy2xhe786esDuwgTFtUSFOG4b9Cn+RGMVE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=t1BAKlKlGL64nwpy+BfvHLDONnNkGhvIlb8DN1z0ifprqsdqud34MDrNx9RktI3uzP+5iv5jD0g3nWHeLnTyssvNbtq5TGQmAWMa7bAkMJ+uHwjzzOybKfvdUyEQFGTkKDUZbJYx41SXipIGXL9QUGXR7cvRj5CeBH8sgjZGSvI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=YLcv1NO0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hIg454E/; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="YLcv1NO0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hIg454E/" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65GLTg2R198666 for ; Tue, 16 Jun 2026 21:36:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=UM/HZFMqB+zIF0jwzbcnZk JT4T2NJ0NDWIq/TcaFL/Q=; b=YLcv1NO07ha3D2aN6fh3fGAS2U5t9ZbMhWBQF6 jx9f4v2bO8l0lpGbJlVMjFcrOwlpGN7l1sEo7uy5f/wkz6IZ2HoeRX+AG982m34M twOSAAPENEWFzy8JE6pcKHVEaC2E88QBETKcdUV2IfmsTi3RhFNMurn41KrTwPkN CqOS8mG2XYDYEAWVlxrpgqIHum463aRI7zLcl2z01EaYSKPKYdfeNoZTaSCmAFLg JUUJGtHzu0FvwvT++wBCHwCCafnc8ATU0UjdSY8wOQdV+OF6vAWeyADSDauydmpA 7+5Qo4PxSqeechUvIPqYYFEy2mF5IBueP4i7ymHhxKjosYjw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eueer016h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 16 Jun 2026 21:36:28 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2c6afd85980so4777695ad.0 for ; Tue, 16 Jun 2026 14:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781645788; x=1782250588; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=UM/HZFMqB+zIF0jwzbcnZkJT4T2NJ0NDWIq/TcaFL/Q=; b=hIg454E/x3D9aQ7XLOO3EVH9itwjJlS5Ubtn6jYurX+2TGCrQepL9LLl6ChEmJQQRR Ui/4eoxshTDqsCFXTiLzV+ksxAiGICCFQtQpOnXHc8mOzpb3zST90roM7Pf58IOT+nI4 0i9InqGQhwOUvfsoTYQfhmK2JgIyoiBpt3fsLHwdzUX/3zI5YNPaGKgxttaIfLKpy27k Dbp0iERFstvRTczVBtdLp0piC3OuNTHlQX6YCQHoSZ2yiC40Zshr1TWCJWQwbEGzNpaP mIJpo3F8HXhCBBP2qGQ48Xa17V159j5/1xJNuL0ZnLwmUv7Ag2IV+mRwVFkymOVaeJ5e 4rzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781645788; x=1782250588; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UM/HZFMqB+zIF0jwzbcnZkJT4T2NJ0NDWIq/TcaFL/Q=; b=betIwoXLT+t1qyCvjuTbBr23QnwQxrctUKGV6a7wdDdFDYmsvnUeDJ547tBQu0ZZVY /J2gHsojeHiD3l50VJxgSjjf3OSevnffLRp//7u9mYVqMZNKZ3mEtKBIhm/2y3N1hAsJ BnPpZ2FTOpHpiwFlgcwdOhTCtWYi3deMBBYGnWfOqIqx7wkFk+mpbY+JHP8/EoqYI4lc Okf49qjP8VJEPh7zE+1rZJ2A1goeTHszzhaaT8ZS3kbH1NL+/OrtgsbK4VyCc8ngC/X7 QsJzPyMAPBU1lNYy10Lz5/dqIJdxNQlSFdQjQvTqLS8gM6d3OD/i1KXK30hiNf9iUmqj a5PA== X-Forwarded-Encrypted: i=1; AFNElJ+YrFkt70GPK82dPN4apJvGgZSnjCJbs4kWQUiZLLmQe6H8qOvC8hyq8X98t8g9UZJQBmAUP+vnU/ciBLI=@vger.kernel.org X-Gm-Message-State: AOJu0YwEO6jKgOftvaNy2RwkeOd0yjWLYRXG8GuTCBXBYfXvvUydooiM iXAP7fSpRlwHOKjso+0H3yGmLZzq19PIS7jY0NvlutCZd/bT+ZxJaUZmG1BB0wrSqmLDWFcm/rP yOwD0wJ7izbPVSCAKLQOqnV5JtIkec4vhyyfY2JtMZzn/Lke7J+1OEb0qDY+uoeshpGI= X-Gm-Gg: Acq92OGsUbBneYM/rJ5T7gRoV4S2gm8kkmp/e1OCwYyE22RlTTnIoCx3T1s3dhK/0/6 NrFdiHTGRXM2GB5Sx/6u7WstXC1a3e9bK9BZMRgC43NWrALx1ihHlPLi8tUlzU2FNe5bH/QS34I 4gSGsEN4K+WkdFLvwr7Lj3CfV9IWjcS3yrS2WJBv5dy47HUhhSAGRa9j8SyQLGutGoLCaOEdRIR enXnudG+d/WcpG6gm9gcL0D3la6e8PHJwhSJqJrG0jn1xSIHyOiHo00JO891yejh9Hl/VOevGez M/V3+l64/XLdJ71o9nj2aPGzlDpFIOrn8TgPf0HBNJr4S97DMPGsrDnPn4lD5d9mMX8aWYMsiLy jrZ4eUIgkY1gclGalCn4tNe+9Bu0/0JxjHV+Ow9bn8twtBp04urCZ X-Received: by 2002:a17:902:d58a:b0:2b7:a350:463f with SMTP id d9443c01a7336-2c6bc0ac89cmr6838495ad.10.1781645787581; Tue, 16 Jun 2026 14:36:27 -0700 (PDT) X-Received: by 2002:a17:902:d58a:b0:2b7:a350:463f with SMTP id d9443c01a7336-2c6bc0ac89cmr6838295ad.10.1781645787119; Tue, 16 Jun 2026 14:36:27 -0700 (PDT) Received: from hu-bibekkum-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c42fbb50e5sm144656455ad.35.2026.06.16.14.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2026 14:36:26 -0700 (PDT) From: bibek.patro@oss.qualcomm.com Date: Wed, 17 Jun 2026 03:06:14 +0530 Subject: [PATCH] swiotlb: introduce Kconfig option for compile-time default pool size Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20260617-swiotlb-v1-1-abfee3faf4ea@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIAM3BMWoC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDM0Nz3eLyzPySnCTdZCND0+RUgyQj4zRzJaDqgqLUtMwKsEnRsRB+cWl SVmpyCUi7Um0tAPGK9pZrAAAA X-Change-ID: 20260617-swiotlb-c215ce0b23f7 To: Marek Szyprowski , Robin Murphy Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Jagadeesh Pagadala , Bibek Kumar Patro X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781645783; l=4160; i=bibek.patro@oss.qualcomm.com; s=20260617; h=from:subject:message-id; bh=biUpv0v/raB0ry81iTQUQsSlaCD7MoXOz2McxRdy54g=; b=Hpfq42ccEfgUhZtGglP5JBIqFZoTVat7MaEsWAoAp+Zv2ppEtKJtomn7XqEVXdnV0MYCt3PZY WBf5VSNoc7SBUpQzQPW/N5hCf13VQqrz+8rw6K4sFcUP1VWpJVQf6VD X-Developer-Key: i=bibek.patro@oss.qualcomm.com; a=ed25519; pk=DkrbE5dhskZJmBAKR5LygWRsAydEOSN+T0/YxNYxDLM= X-Proofpoint-ORIG-GUID: 4YF4JpwY36lO5zfhA-kBzX7krdnquHNO X-Authority-Analysis: v=2.4 cv=Mr1iLWae c=1 sm=1 tr=0 ts=6a31c1dc cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=AkeLPVSRdpAbCyO8xMUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: 4YF4JpwY36lO5zfhA-kBzX7krdnquHNO X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE2MDIxOCBTYWx0ZWRfX/7Wiqm9pmSKU fH7KM0GJLYWt7g6dwCY0n9uljzDjSEnt5p1jPymQW5sY7oZvVESXzqrAbvbVe58GGykNlHJmpuM fq0TZzDL+1QOMYpZCNE0jIFM/zV19zw= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE2MDIxOCBTYWx0ZWRfX6InVw2BCQGgo poSWE95l1tkLTdS0wPyMJKgI4BkX5V/M+z+/xBbf5OB6jV/jNt/sAnxwX57DzAhXtDYdV+hS8Om 97zBvjeoOTyAbxVG3FgzSUNGUi87ZAatnv9WNjc4/a9MphTIdHFtFTcdZmve4g2y790EZrG3hEO bL2jk59hJ2M7mzLdqk6a9O9ItyFkSHKgmIXdMCZgThG6Hj3wDi9gmo+HUdlRtCzrQN0Y1Z+0p+l 1BBnz4C0g6p6pCoGBJJ96jHBPDsV1PsoFJu9xFZ65UIAk2LfHPdna425oUXVNthlmiOe3b4F56t 9cPSuwdXZzALQmpkf8YUGaKh6q4PnYdIJxvFdGJZLSu4bbXJCrcXWCF14+hPR1+IhrheOPPP/ib Ny6DnfO1QRa2pq87Mw+xF+ohLgkUyeHpcpdfaGEePchoa7LXmec3izBPGB1GbTTgeluqDfJXivL kBvbft94Knw+IvNUs5Q== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-16_05,2026-06-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 phishscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606160218 From: Jagadeesh Pagadala The SWIOTLB bounce buffer pool size is hardcoded at 64 MB via IO_TLB_DEFAULT_SIZE with no compile-time knob to adjust it. On memory-constrained embedded or mobile platforms equipped with a hardware IOMMU (e.g., ARM SMMU) covering most DMA-capable devices, reserving 64 MB at boot is unnecessarily wasteful — the SWIOTLB is only exercised for devices that bypass the IOMMU or have restricted DMA address ranges. Introduce CONFIG_SWIOTLB_DEFAULT_SIZE_MB, an integer Kconfig option (range 1–64 MB, default 64) that allows platforms to set a smaller compile-time default. IO_TLB_DEFAULT_SIZE is updated to derive from this value when CONFIG_SWIOTLB is enabled, preserving the existing 64 MB default when the option is not configured. The runtime "swiotlb=" kernel parameter override remains fully supported and takes precedence over the compile-time default. Signed-off-by: Jagadeesh Pagadala Signed-off-by: Bibek Kumar Patro --- The SWIOTLB bounce buffer pool size is hardcoded at 64 MB. On memory-constrained platforms with a hardware IOMMU (e.g., ARM SMMU), this reservation is wasteful as SWIOTLB is only needed for devices that bypass the IOMMU or have restricted DMA address ranges. Introduce CONFIG_SWIOTLB_DEFAULT_SIZE_MB (range 1–64 MB, default 64) to allow a smaller compile-time default. The runtime "swiotlb=" parameter override remains supported and takes precedence. Before (default 64 MB): [ 0.000000] software IO TLB: area num 8. [ 0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB) After (CONFIG_SWIOTLB_DEFAULT_SIZE_MB=2): [ 0.000000] software IO TLB: area num 8. [ 0.000000] software IO TLB: SWIOTLB bounce buffer size roundup to 2MB [ 0.000000] software IO TLB: mapped [mem 0x00000000ffdff000-0x00000000fffff000] (2MB) --- include/linux/swiotlb.h | 8 ++++++-- kernel/dma/Kconfig | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index 3dae0f592063..1665a9ce8f94 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -32,8 +32,12 @@ struct scatterlist; #define IO_TLB_SHIFT 11 #define IO_TLB_SIZE (1 << IO_TLB_SHIFT) -/* default to 64MB */ -#define IO_TLB_DEFAULT_SIZE (64UL<<20) +/* compile-time default; overridable via CONFIG_SWIOTLB_DEFAULT_SIZE_MB */ +#ifdef CONFIG_SWIOTLB +#define IO_TLB_DEFAULT_SIZE ((unsigned long)CONFIG_SWIOTLB_DEFAULT_SIZE_MB << 20) +#else +#define IO_TLB_DEFAULT_SIZE (64UL << 20) +#endif unsigned long swiotlb_size_or_default(void); void __init swiotlb_init_remap(bool addressing_limit, unsigned int flags, diff --git a/kernel/dma/Kconfig b/kernel/dma/Kconfig index 0a4ba21a57a7..3830a63ae032 100644 --- a/kernel/dma/Kconfig +++ b/kernel/dma/Kconfig @@ -86,6 +86,28 @@ config SWIOTLB bool select NEED_DMA_MAP_STATE +config SWIOTLB_DEFAULT_SIZE_MB + int "Default SWIOTLB bounce buffer size in MB" + depends on SWIOTLB + range 1 64 + default 64 + help + Sets the default size of the software IO TLB (SWIOTLB) bounce buffer + pool allocated at boot time. The default is 64 MB. + + On memory-constrained embedded or mobile platforms (e.g., those with + a hardware IOMMU such as ARM SMMU covering most DMA-capable devices), + a smaller value such as 4 or 8 MB may be sufficient. The SWIOTLB is + then only needed for devices that bypass the IOMMU or have restricted + DMA address ranges. + + The minimum allowed value is 1 MB. This compile-time default can be + overridden at runtime using the "swiotlb=" kernel command line + parameter. Refer to Documentation/admin-guide/kernel-parameters.txt + for details. + + If unsure, leave at the default value of 64. + config SWIOTLB_DYNAMIC bool "Dynamic allocation of DMA bounce buffers" default n --- base-commit: 4fa3f5fabb30bf00d7475d5a33459ea83d639bf9 change-id: 20260617-swiotlb-c215ce0b23f7 Best regards, -- Bibek Kumar Patro