Re: [PATCH v3] x86/pci-dma: add a SWIOTLB_ANY flag to lift the low mem limitation
From: Alexey Kardashevskiy
Date: Wed Jun 24 2026 - 05:58:27 EST
On 12/2/26 20:37, Jun Miao wrote:
Intel TDX guest wants to allocate a swiotlb buffer that is not restricted to
low memory for the trusted hypervisor scheme. Adding a new flag will be used
in swiotlb_memblock_alloc() to allow allocation of SWIOTLB memory beyond low
memory restriction.
What about those devices with DMA masks < 64bit which needed swiotlb in the first place?
The DMA layer on coco VMs shares coherent memory (from anywhere), why focus on swiotlb alone?
Here is ongoing work to get rid of SWIOTLB_FORCE and do other things with swiotlb:
https://lore.kernel.org/r/20260604083959.1265923-1-aneesh.kumar@xxxxxxxxxx
so this patch is likely to conflict with that series. Thanks,
Power SVM already supports this, but X86 still faces the same limitation.
Commit: 8ba2ed1be9 (swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction)
Reviewed-by: Aakarsh Jain <aakarsh.jain@xxxxxxxxxxxxxxxx>
Tested-by: Aakarsh Jain <aakarsh.jain@xxxxxxxxxxxxxxxx>
Signed-off-by: Jun Miao <jun.miao@xxxxxxxxx>
---
V1 -> V2:
1.Updated commit message and description.
2.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.
---
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
--
Alexey