Re: [PATCH v4 10/38] drm/i915: Force MMIO flips when scheduler enabled

John Harrison
2016-01-13T12:37:46Z

On 12/01/2016 21:53, Chris Wilson wrote:
> On Tue, Jan 12, 2016 at 03:07:03PM +0100, Daniel Vetter wrote:
>> On Tue, Jan 12, 2016 at 11:19:26AM +0000, John Harrison wrote:
>>> On 11/01/2016 22:16, Chris Wilson wrote:
>>>> On Mon, Jan 11, 2016 at 06:42:39PM +0000, John.C.Harrison@Intel.com wrote:
>>>>> From: John Harrison <John.C.Harrison@Intel.com>
>>>>>
>>>>> MMIO flips are the preferred mechanism now but more importantly,
>>>> Says who?
>>> I asked this exact question at the linux architecture forum quite some time
>>> ago - does the scheduler need to worry about managing non-batch buffer work
>>> such as page flips. The answer from everyone present was no, MMIO flips are
>>> the way to go so don't over complicate the scheduler trying to support ring
>>> flips. Indeed, execlist mode already forces MMIO flips anyway.
> Two wrongs do not make a right, as they say. CS flips work very nicely
> with execlists.
They might have done at one point but if you don't test it then it don't
work and right now it ain't being tested because:
static bool use_mmio_flip(struct intel_engine_cs *ring,
struct drm_i915_gem_object *obj)
...
else if (i915.enable_execlists)
return true;

>
>> Atomic will kill CS flips. We can mourn them and scream about the loss,
>> but imo best is to just skip that all and move on to acceptance. So mmio
>> flips (or well, atomic flips) is still the way to go for everything.
> The real issue I think here is that not trying to feed a request into the
> scheduler for the flip has lead to a poor interface into the scheduler.
> For a CS flip request, we know the ordering, it's contents, we have to
> choose the context though, but we have a good idea of the deadline which
> gives a good challenge to a scheduler. That was my take.
> -Chris
>