Re: [PATCH 3/3] drm/i915: Treat ringbuffer writes as write to normal memory

Chris Wilson
2015-10-16T15:13:35Z

On Fri, Oct 16, 2015 at 06:06:09PM +0300, Ville Syrjälä wrote:
> On Thu, Oct 08, 2015 at 01:39:56PM +0100, Chris Wilson wrote:
> > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > index 49aa52440db2..0eaaab92dea0 100644
> > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > @@ -2180,13 +2180,8 @@ static int ring_wait_for_space(struct intel_engine_cs *ring, int n)
> >
> > static void __wrap_ring_buffer(struct intel_ringbuffer *ringbuf)
> > {
> > - uint32_t __iomem *virt;
> > int rem = ringbuf->size - ringbuf->tail;
> > -
> > - virt = ringbuf->virtual_start + ringbuf->tail;
> > - rem /= 4;
> > - while (rem--)
> > - iowrite32(MI_NOOP, virt++);
> > + memset(ringbuf->virtual_start + ringbuf->tail, 0, rem);
>
> Hmm. The lrc copy looks identical to this one. But looks like most of
> intel_lrc.c ring handling is copy pasted anyway, so there's even more
> that could be thrown out.

Yes, only this time I am trying to be sneaky and only delete small
chunks at a time. It may take a few years to do what could be done in a
morning, but whatever.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre