Subject: [PATCH 0/8] io-pgtable lock removal

From: [email-masked] (Will Deacon)
Date: Fri, 7 Jul 2017 13:46:49 +0100

On Thu, Jul 06, 2017 at 11:14:00AM -0700, Ray Jui wrote:
> On 7/6/17 8:08 AM, Will Deacon wrote:
> > On Wed, Jul 05, 2017 at 04:24:22PM -0700, Ray Jui wrote:
> >> However, with the fix patch, I can still see the deadlock message when I
> >> have > 32 iperf TX threads active in the system:
> > 
> > Damn. We've been going over this today and the only plausible theory seems
> > to be that concurrent TLB syncs are causing the completion to be pushed out,
> > resulting in timeouts.
> > 
> > Can you try this patch below, instead of the one I sent before, please?
> > 
> > Thanks,
> > 
> > Will
> > 
> > --->8
> 
> Good news! I can confirm that with the new patch below, the error log of
> "TLB sync timed out" is now gone. I ran 20 iterations of the iperf
> client test with 64 threads spread across 8 CPUs. The error message used
> to coming out very quickly with just one iteration. But now it's
> completely gone.

Good, I'll queue this is as a fix then. Thanks for testing!

> At the same time, I do seem to observe a slight impact on performance
> when multiple threads are used, but I guess that is expected, given that
> a spin lock is added to protect the TLB sync.

Hopefully that performance will pick up again once we defer the sync
to the end of iommu_unmap.

Will