From: Aneesh Kumar K.V <[email protected]> Sent: Friday, August 7, 2026 11:01 AM > > Jason Gunthorpe <[email protected]> writes: > > > On Fri, Aug 07, 2026 at 02:18:31PM +0100, Will Deacon wrote: > > > >> > I was under the impression that there is a possibility of using swiotlb > >> > instead of restricted-dma-pool with pKVM. > >> > >> Yes, that patch enables swiotlb as a possibility for protected guests > >> but with your patch we avoid shrinking the swiotlb buffer even when > >> restricted dma pools are being used and that's a waste of memory. > > > > I also thought we switched pkvm to use CC-like swiotlb as part of the > > alignment in this rework? Mostafa ? > > > >> > If that is not the case, then we could change: > >> > > >> > !cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT) && > >> > > >> > to > >> > > >> > !is_realm_world() && > >> > >> Perhaps, or you could just pass the swiotlb= option if the defaults don't > >> work for you. Can you give more details about the slots exhaustion you're > >> seeing under CCA? > > > > We see badness with swiotlb too, it basically doesn't work out of the > > box if you have to use it 100% for real devices. It easily runs out > > of memory. > > > > Auto tuning to higher levels makes sense to me, but I'd rather the > > core code handled adjusting its size to the estimated need, not arch > > code. > > Agreed
Nobody has mentioned it on this thread, but arch code under x86 has a heuristic for sizing the swiotlb for SEV-SNP and TDX. The heuristic is 6% of guest memory, with a max of 1 GiB. See mem_encrypt_setup_arch(). The heuristic originally went into the 5.11 kernel nearly 6 years ago for the original SEV support and hasn't changed since. See commit e998879d4fb79, which doesn't give much of an explanation. I don't think this is necessarily a good heuristic -- it tends to waste a lot of memory, but there are also a few cases where it isn't enough memory. After a few years of experience with SEV and TDX, nobody seems to have tried to come up with something better, so maybe it's not all that bad. No doubt the heuristic should move into common code so CCA, SEV, and TDX all use the same one. Michael
