Re: pci-usb/pci-sata broken with LPAE config after "reduce use of block bounce buffers"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Christoph,

On 30/01/20 10:12 pm, Christoph Hellwig wrote:
> On Thu, Jan 30, 2020 at 01:39:58PM +0530, Kishon Vijay Abraham I wrote:
>> Hi Christoph,
>>
>> On 30/01/20 1:28 pm, Christoph Hellwig wrote:
>>> On Fri, Nov 15, 2019 at 04:29:31PM +0530, Kishon Vijay Abraham I wrote:
>>>> Hi Christoph,
>>>>
>>>> I think we are encountering a case where the connected PCIe card (like PCIe USB
>>>> card) supports 64-bit addressing and the ARM core supports 64-bit addressing
>>>> but the PCIe controller in the SoC to which PCIe card is connected supports
>>>> only 32-bits.
>>>>
>>>> Here dma APIs can provide an address above the 32 bit region to the PCIe card.
>>>> However this will fail when the card tries to access the provided address via
>>>> the PCIe controller.
>>>
>>> What kernel version do you test?  The classic arm version of dma_capable
>>> doesn't take the bus dma mask into account.  In Linux 5.5 I switched
>>> ARM to use the generic version in
>>>
>>> 130c1ccbf55 ("dma-direct: unify the dma_capable definitions")
>>>
>>> so with that this case is supposed to work, without that it doesn't
>>> have much of a chance.
>>
>> I got into a new issue in 5.5 kernel with NVMe card wherein I get the
>> below warn dump. This is different from the issue I initially posted
>> seen with USB and SATA cards (I was getting a data mismatch then). With
>> 5.5 kernel I don't see those issues anymore in USB card. I only see the
>> below warn dump with NVMe card.
> 
> Can you throw in a little debug printk if this comes from
> dma_direct_possible or swiotlb_map?

I could see swiotlb_tbl_map_single() returning DMA_MAPPING_ERROR.

Kernel with debug print:
https://github.com/kishon/linux-wip.git nvm_dma_issue

Full log: https://pastebin.ubuntu.com/p/Xf2ngxc3kB/

Thanks
Kishon



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux