Re: dma api errors with swiotlb

From: Christoph Hellwig
Date: Wed Sep 04 2019 - 08:55:40 EST


On Wed, Sep 04, 2019 at 02:54:26PM +0200, Thomas Hellström (VMware) wrote:
> On 9/4/19 2:17 PM, Christoph Hellwig wrote:
> > A call to dma_max_mapping_size() to limit the maximum I/O size solves
> > that problem. With the latest kernel that should actually be done
> > automatically by the SCSI midlayer for you.
>
> Hmm, OK. I guess with a sufficient queue depth and many mappings waiting for
> DMA completion, the SWIOTLB may fill up anyway...
>
> I'll see if I can come up with something.

You are supposed to return SCSI_MLQUEUE_HOST_BUSY in that case,
which means that the kernel won't send more commands until another
one completed.