Re: [PATCH 1/2] drm/i915/overlay: Allocate physical registers from stolen

Chris Wilson
2018-09-11T13:13:40Z

Quoting Ville Syrjälä (2018-09-11 14:07:18)
> On Thu, Sep 06, 2018 at 08:01:43PM +0100, Chris Wilson wrote:
> > Given that we are now reasonably confident in our ability to detect and
> > reserve the stolen memory (physical memory reserved for graphics by the
> > BIOS) for ourselves on most machines, we can put it to use. In this
> > case, we need a page to hold the overlay registers.
> >
> > On an i915g running MythTv, H Buus noticed that
> >
> > commit 6a2c4232ece145d8b5a8f95f767bd6d0d2d2f2bb
> > Author: Chris Wilson <chris@chris-wilson.co.uk>
> > Date: Tue Nov 4 04:51:40 2014 -0800
> > drm/i915: Make the physical object coherent with GTT
> >
> > introduced stuttering into his video playback. After discarding the
> > likely suspect of it being the physical cursor updates, we were left
> > with the use of the phys object for the overlay. And lo, if we
> > completely avoid using the phys object (allocated just once on module
> > load!) by switching to stolen memory, the stuttering goes away.
> >
> > For lack of a better explanation, claim victory and kill two birds with
> > one stone.
>
> A but peculiar. But looks fine to me. And we should have some
> stolen pretty much everywhere. I guess my only concern is permanently
> fragmenting stolen with this. Or does the allocator grab it from the
> very end?

Hmm, it using DRM_MM_INSERT_BEST for all atm. We can do better by using
DRM_MM_INSERT_LOW for the permanent stuff, but at the beginning BEST
should still be one-sided.
-Chris