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 <[email protected]> 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 <[email protected]> > >> wrote: > >> > This patch *is* alone, sorry for the typo. > >> > > >> > On Mon, Jan 11, 2010 at 9:20 PM, Maarten Maathuis <[email protected]> > >> > 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 > >> >> <[email protected]> wrote: > >> >>> - This should fix the problem with gpu hangs people have had when > >> >>> closing > >> >>> channels. > >> >>> > >> >>> Signed-off-by: Maarten Maathuis <[email protected]> > >> >>> --- > >> >>> 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 > >> [email protected] > >> http://lists.freedesktop.org/mailman/listinfo/nouveau > > > > > > _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
