Re: [RFC PATCH] usb: gadget: f_tcm: Added DMA32 flag while allocation of command buffer

From: Konrad Rzeszutek Wilk
Date: Mon Nov 25 2019 - 11:28:10 EST


. massive snip..
> > > Why is swiotlb buffer getting full? How much is it on your system?
>
> On our system swiotlb max mapping size is 256KB.
> UASP receive data state tries to queue and map buffer of length 524288 (512KB), which is greater than 256KB that's why swiotlb buffer is getting full.

What is the reason for the UASP not being able to break the buffer in say two
256KB sg entries?

>
> > > Are you sure that dma_unmap is happening on requests that complete?
> > else we'll just keep hogging the swiotlb buffer.
>
> Yes, dma_unmap is happening on requests that complete.
>
> I could map buffer of length 512KB with IO_TLB_SEGSIZE changed to 256.
> With this max mapping size is increased to 256*2048 = 512KB.

If we go this route (which I rather dislike as this is a workaround, because
what if the next time there is 1MB buffer? Do we keep on increasing this?) - then
this should be dynamic and an option on the 'swiotlb' command line.