[Intel-gfx] [PATCH] drm/i915: Recreate internal objects with single page segments if dmar fails

Chris Wilson chris at chris-wilson.co.uk
Fri Feb 3 09:50:42 UTC 2017


On Fri, Feb 03, 2017 at 09:40:23AM +0000, Tvrtko Ursulin wrote:
> 
> On 02/02/2017 13:27, Chris Wilson wrote:
> >If we fail to dma-map the object, the most common cause is lack of space
> >inside the SW-IOTLB due to fragmentation. If we recreate the_sg_table
> >using segments of PAGE_SIZE (and single page allocations), we may succeed
> >in remapping the scatterlist.
> >
> >First became a significant problem for the mock selftests after commit
> >5584f1b1d73e ("drm/i915: fix i915 running as dom0 under Xen") increased
> >the max_order.
> 
> There is still "max_order = min(max_order, ...)" in that patch, so I
> don't see how it increased it.
> 
> I think you mean "drm/i915: Allow compaction upto SWIOTLB max
> segment size" ? Or no, that predates the internal object support. So
> just fixes on the patch which introduced the internal objects?

The failure bisects to 5584f1b1d73e as ilog2(IO_TLB_SEGPAGES) is 6,
but here I have ilog2(swiotlb_max_segment() >> PAGE_SHIFT) == 9.

I did not say the bug was introduced in that patch, just that it made
the underlying fragmentation issue more visible - and causing test
failures.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list