mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jun Miao <jun.miao@intel.com>
To: bp@alien8.de, tglx@kernel.org, mingo@redhat.com,
	dave.hansen@linux.intel.com, m.szyprowski@samsung.com,
	robin.murphy@arm.com, rick.p.edgecombe@intel.com
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	aakarsh.jain@oss.qualcomm.com, michael.roth@amd.com,
	fan.du@intel.com, jun.miao@intel.com
Subject: [PATCH v4] x86/pci-dma: add a SWIOTLB_ANY flag to lift the low mem limitation
Date: Thu, 25 Jun 2026 09:26:16 +0800	[thread overview]
Message-ID: <20260625012616.2992535-1-jun.miao@intel.com> (raw)

When high-speed NICs or multi-GPU setups are passed through into confidential
VMs, the SWIOTLB bounce buffer becomes the critical path between private and
shared memory. Restricting it to low memory limits throughput and fails to
scale for larger workloads.

AMD SEV-SNP and Intel TDX guests run in a TEE where the hypervisor is untrusted.
DMA-capable devices require bounce buffers to mediate between encrypted private
memory and unencrypted shared memory. Confining these buffers to low memory (<4GB)
unnecessarily caps their size and degrades performance.

Power SVM already supports this; x86 does not. See commit 8ba2ed1be9
("swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction").

[ aakarsh: completely trim down/rewrite changelog ]

Tested-by: Aakarsh Jain <aakarsh.jain@oss.qualcomm.com>
Suggested-by: Borislav Petkov <bp@alien8.de>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Aakarsh Jain <aakarsh.jain@oss.qualcomm.com>
Signed-off-by: Jun Miao <jun.miao@intel.com>
---

v1 -> v2:
- Updated commit message and description.
- Add Reviewed and Tested.
V1 Latest Feedback : https://lists.openwall.net/linux-kernel/2026/02/11/483

v2 -> v3:
- We can alloc 4GB with the dynamic swiotlb, rather than 1GB.
  1G is not correct. So change the commit log.

v3 -> v4:
- Not only TDX-specific but all encrypted guests include SEV.
- SEV-SNP guest passed the test with the help of Aakarsh.
  Tested-by: Aakarsh Jain <aakarsh.jain@oss.qualcomm.com>

- Add "Acked-by: Marek Szyprowski"
- Explain the usage case in the commit log following Boris`s suggestion.

---
 arch/x86/kernel/pci-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 6267363e0189..73b9320c4a7d 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -61,7 +61,7 @@ static void __init pci_swiotlb_detect(void)
 	 */
 	if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)) {
 		x86_swiotlb_enable = true;
-		x86_swiotlb_flags |= SWIOTLB_FORCE;
+		x86_swiotlb_flags |= SWIOTLB_ANY | SWIOTLB_FORCE;
 	}
 }
 #else
-- 
2.47.1


             reply	other threads:[~2026-06-25  1:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-25  1:26 Jun Miao [this message]
2026-06-25  3:14 ` Michael Kelley
2026-07-12  0:55 ` Borislav Petkov

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=20260625012616.2992535-1-jun.miao@intel.com \
    --to=jun.miao@intel.com \
    --cc=aakarsh.jain@oss.qualcomm.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=fan.du@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=michael.roth@amd.com \
    --cc=mingo@redhat.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=robin.murphy@arm.com \
    --cc=tglx@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

Powered by JetHome