Re: [PATCH 06/10] swiotlb: use swiotlb_map_page in swiotlb_map_sg_attrs

Robin Murphy
2018-11-09T16:38:00Z

On 09/11/2018 07:49, Christoph Hellwig wrote:
> On Tue, Nov 06, 2018 at 05:27:14PM -0800, John Stultz wrote:
>> But at that point if I just re-apply "swiotlb: use swiotlb_map_page in
>> swiotlb_map_sg_attrs", I reproduce the hangs.
>>
>> Any suggestions for how to further debug what might be going wrong
>> would be appreciated!
>
> Very odd. In the end map_sg and map_page are defined to do the same
> things to start with. The only real issue we had in this area was:
>
> "[PATCH v2] of/device: Really only set bus DMA mask when appropriate"
>
> so with current mainline + that you still see a problem, and if you
> rever the commit we are replying to it still goes away?

OK, after quite a bit of trying I have managed to provoke a
similar-looking problem with straight 4.20-rc1 on my Juno board - so far
my "reproducer" is to decompress a ~10GB .tar.xz off an external USB
hard disk, wherein after somewhere between 5 minutes and half an hour or
so it tends to falls over with xz choking on corrupt data and/or a USB
error.

From the presentation, this really smells like there's some corner in
which we're either missing cache maintenance or doing it to the wrong
address - I've not seen any issues with Juno's main PCIe-attached I/O,
but the EHCI here is non-coherent (and 32-bit, so the bus_dma_mask thing
doesn't matter) as are the HiKey UFS and SD controller.

I'll keep digging...

Robin.