Re: [PATCH 06/10] swiotlb: use swiotlb_map_page in swiotlb_map_sg_attrs
From: Robin Murphy
Date: Fri Nov 09 2018 - 11:38:00 EST
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.