[Intel-gfx] [PATCH 06/31] drm/i915/execlists: Unify CSB access pointers

Chris Wilson chris at chris-wilson.co.uk
Wed Jun 27 13:09:34 UTC 2018


Quoting Tvrtko Ursulin (2018-06-27 14:03:07)
> 
> On 27/06/2018 11:35, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2018-06-27 10:52:45)
> >>
> >> On 25/06/2018 10:48, Chris Wilson wrote:
> >>> @@ -1109,16 +1089,11 @@ static void process_csb(struct intel_engine_cs *engine)
> >>>                } else {
> >>>                        port_set(port, port_pack(rq, count));
> >>>                }
> >>> -     }
> >>> +     } while (head != tail);
> >>>    
> >>> -     if (head != execlists->csb_head) {
> >>> -             execlists->csb_head = head;
> >>> -             writel(_MASKED_FIELD(GEN8_CSB_READ_PTR_MASK, head << 8),
> >>> -                    i915->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_PTR(engine)));
> >>> -     }
> >>> -
> >>> -     if (unlikely(fw))
> >>> -             intel_uncore_forcewake_put(i915, execlists->fw_domains);
> >>> +     writel(_MASKED_FIELD(GEN8_CSB_READ_PTR_MASK, head << 8),
> >>> +            execlists->csb_read);
> >>
> >> Continuing from the last round - so what to do with this one? It does
> >> need forcewake. So I think it needs to go if we are claiming there is no
> >> mmio any longer.
> > 
> >  From last round, we decided it didn't, or at least concluded the
> > (from the lack of) evidence that it does not, because we are not using
> > forcewake right now...
> 
> But we are not sure if our writes stick 100% of the time due using the 
> HWSP path. And we are wasting time on MMIO for nothing. Put an "if 
> (execlists->csb_use_mmio)" on it?

We only ever read from the status buffer. We always commit to HW with a
mmio write to let the HW know how far we read up to (there's no slot in
the HWSP for our read pointer, just the HW write pointer).
-Chris


More information about the Intel-gfx mailing list