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

2010-01-11 Thread Maarten Maathuis
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 madman2...@gmail.com wrote:
 - This should fix the problem with gpu hangs people have had when closing
 channels.

 Signed-off-by: Maarten Maathuis madman2...@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@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


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

2010-01-11 Thread Maarten Maathuis
This patch *is* alone, sorry for the typo.

On Mon, Jan 11, 2010 at 9:20 PM, Maarten Maathuis madman2...@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 madman2...@gmail.com 
 wrote:
 - This should fix the problem with gpu hangs people have had when closing
 channels.

 Signed-off-by: Maarten Maathuis madman2...@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@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


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

2010-01-11 Thread Maarten Maathuis
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).

Maarten.

On Mon, Jan 11, 2010 at 11:11 PM, Ben Skeggs skeg...@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 madman2...@gmail.com 
 wrote:
  This patch *is* alone, sorry for the typo.
 
  On Mon, Jan 11, 2010 at 9:20 PM, Maarten Maathuis madman2...@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 madman2...@gmail.com 
  wrote:
  - This should fix the problem with gpu hangs people have had when closing
  channels.
 
  Signed-off-by: Maarten Maathuis madman2...@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@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/nouveau



___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau