Re: [PATCH V2 1/2] Swiotlb: Add swiotlb_alloc_from_low_pages switch

From: Tianyu Lan
Date: Tue Feb 22 2022 - 10:07:41 EST




On 2/22/2022 4:05 PM, Christoph Hellwig wrote:
On Mon, Feb 21, 2022 at 11:14:58PM +0800, Tianyu Lan wrote:
Sorry. The boot failure is not related with these patches and the issue
has been fixed in the latest upstream code.

There is a performance bottleneck due to io tlb mem's spin lock during
performance test. All devices'io queues uses same io tlb mem entry
and the spin lock of io tlb mem introduce overheads. There is a fix patch
from Andi Kleen in the github. Could you have a look?

https://github.com/intel/tdx/commit/4529b5784c141782c72ec9bd9a92df2b68cb7d45

Please post these things to the list.

But I suspect the right answer for the "secure" hypervisor case is to
use the per-device swiotlb regions that we've recently added.

Thanks for your comment. That means we need to expose an swiotlb_device_init() interface to allocate bounce buffer and initialize
io tlb mem entry. DMA API Current rmem_swiotlb_device_init() only works
for platform with device tree. The new API should be called in the bus
driver or new DMA API. Could you check whether this is a right way before we start the work.

Thanks.