On Tue, 23 May 2023 10:54:11 +0100 Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > On Wed, May 17, 2023 at 01:27:48PM +0200, Petr Tesařík wrote: > > On Wed, 17 May 2023 08:35:10 +0200 > > Petr Tesařík <petr@xxxxxxxxxxx> wrote: > > > Anyway, my greatest objection to allocating additional swiotlb chunks is > > > that _all_ of them must be searched to determine that the physical > > > address does _not_ belong to a swiotlb, incurring performance penalty > > > > I thought about this part again, and I overlooked one option. We can > > track only the _active_ swiotlbs for each device. If a device never > > needs a swiotlb, there is no active swiotlb, and is_swiotlb_buffer() > > short-circuits to false. This should avoid all collateral damage to > > innocent devices. > > Does this work with dma-buf or does dma-buf not allow swiotlb bouncing? Currently, it does work with dma-buf. OTOH Christoph is apparently not very happy about it and would rather implement alternative mechanisms to let dma-buf allocate buffers so that they do not require swiotlb. See his reply here: https://lkml.org/lkml/2023/4/7/38 OTOH if you're asking because of swiotlb use by encrypted VM guests, the answer might be different. Cheers Petr T