[Nouveau] [PATCH 3/3] drm/nv50: wait for pgraph to idle before unloading the context

Ben Skeggs skeggsb at gmail.com
Mon Jan 11 19:07:09 PST 2010


On Mon, 2010-01-11 at 23:21 +0100, Maarten Maathuis wrote:
> I can't say for sure it's the full solution, i can make nv50 gallium
> lock up in an odd (and different) way than before. And during bitscan
> runs i did see some "PGRAPH fail to idle status 0x101" and even one or
> "AIII, inactive channel 128" (from the top of my head).
Yeah, there's still issues but it's a lot better with it anyway. 

Pushed.

Ben.
> 
> Maarten.
> 
> On Mon, Jan 11, 2010 at 11:11 PM, Ben Skeggs <skeggsb at gmail.com> wrote:
> > On Mon, 2010-01-11 at 22:12 +0100, Maarten Maathuis wrote:
> >> A few comments are in order, i noticed that this additional
> >> wait_for_idle does cause delays sometimes (obviously). and it seems
> >> like an excellent way to do a DOS attack on your gpu. fbcon is visibly
> >> lagging sometimes and even unusable (gpu is not locked up,  X works
> >> fine started from ssh). This seems like something to consider when
> >> choosing the preferred solution.
> > Yeah, I think the wait_for_idle() is fine.  I'm actually interested it
> > solved the problem completely for you, as I mentioned to you (maybe?), I
> > still seen an *occasional* hang when I tried it.  But, it's still a huge
> > improvement over now.
> >
> > Ben.
> >>
> >> On Mon, Jan 11, 2010 at 9:22 PM, Maarten Maathuis <madman2003 at gmail.com> wrote:
> >> > This patch *is* alone, sorry for the typo.
> >> >
> >> > On Mon, Jan 11, 2010 at 9:20 PM, Maarten Maathuis <madman2003 at gmail.com> wrote:
> >> >> This patch alone, so ignore the 3/3. I think this fixes the channel
> >> >> unload hang issues in a less obscure way. Feedback appreciated as
> >> >> usual.
> >> >>
> >> >> On Mon, Jan 11, 2010 at 9:18 PM, Maarten Maathuis <madman2003 at gmail.com> wrote:
> >> >>> - This should fix the problem with gpu hangs people have had when closing
> >> >>> channels.
> >> >>>
> >> >>> Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
> >> >>> ---
> >> >>>  drivers/gpu/drm/nouveau/nv50_graph.c |    1 +
> >> >>>  1 files changed, 1 insertions(+), 0 deletions(-)
> >> >>>
> >> >>> diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c b/drivers/gpu/drm/nouveau/nv50_graph.c
> >> >>> index 444a46b..d6897cf 100644
> >> >>> --- a/drivers/gpu/drm/nouveau/nv50_graph.c
> >> >>> +++ b/drivers/gpu/drm/nouveau/nv50_graph.c
> >> >>> @@ -282,6 +282,7 @@ nv50_graph_unload_context(struct drm_device *dev)
> >> >>>                return 0;
> >> >>>        inst &= NV50_PGRAPH_CTXCTL_CUR_INSTANCE;
> >> >>>
> >> >>> +       nouveau_wait_for_idle(dev);
> >> >>>        nv_wr32(dev, 0x400500, fifo & ~1);
> >> >>>        nv_wr32(dev, 0x400784, inst);
> >> >>>        nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) | 0x20);
> >> >>> --
> >> >>> 1.6.6
> >> >>>
> >> >>>
> >> >>
> >> >
> >> _______________________________________________
> >> Nouveau mailing list
> >> Nouveau at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/nouveau
> >
> >
> >




More information about the Nouveau mailing list