Re: [Nouveau] [PATCH 4/5] drm/nv50: let applications hanging on vm flush to be killed

2012-04-23 Thread Martin Peres

Le 23/04/2012 00:18, Marcin Slusarz a écrit :

Signed-off-by: Marcin Slusarzmarcin.slus...@gmail.com
---
  drivers/gpu/drm/nouveau/nv50_graph.c |5 +
  1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c 
b/drivers/gpu/drm/nouveau/nv50_graph.c
index 6899547..a61853f 100644
--- a/drivers/gpu/drm/nouveau/nv50_graph.c
+++ b/drivers/gpu/drm/nouveau/nv50_graph.c
@@ -435,6 +435,11 @@ nv84_graph_tlb_flush(struct drm_device *dev, int engine)
if ((tmp  7) == 1)
idle = false;
}
+
+   if (fatal_signal_pending(current)) {
+   ret = -ERESTARTSYS;
+   break;
+   }
} while (!idle  !(timeout = ptimer-read(dev) - start  20));

if (timeout) {

Good, but who should send the kill signal in the first place?

Shouldn't nouveau drm terminate the process(es) associated with the 
channel that generated the lockup ?


Can you provide more info on how the lockup recovery works?

Thanks in advance,
Martin
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [PATCH 4/5] drm/nv50: let applications hanging on vm flush to be killed

2012-04-23 Thread Marcin Slusarz
On Mon, Apr 23, 2012 at 07:09:57PM +0200, Martin Peres wrote:
 Le 23/04/2012 00:18, Marcin Slusarz a écrit :
  Signed-off-by: Marcin Slusarzmarcin.slus...@gmail.com
  ---
drivers/gpu/drm/nouveau/nv50_graph.c |5 +
1 files changed, 5 insertions(+), 0 deletions(-)
 
  diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c 
  b/drivers/gpu/drm/nouveau/nv50_graph.c
  index 6899547..a61853f 100644
  --- a/drivers/gpu/drm/nouveau/nv50_graph.c
  +++ b/drivers/gpu/drm/nouveau/nv50_graph.c
  @@ -435,6 +435,11 @@ nv84_graph_tlb_flush(struct drm_device *dev, int 
  engine)
  if ((tmp  7) == 1)
  idle = false;
  }
  +
  +   if (fatal_signal_pending(current)) {
  +   ret = -ERESTARTSYS;
  +   break;
  +   }
  } while (!idle  !(timeout = ptimer-read(dev) - start  20));
 
  if (timeout) {
 Good, but who should send the kill signal in the first place?
 
 Shouldn't nouveau drm terminate the process(es) associated with the 
 channel that generated the lockup ?

Well, this patch is not necessary for gpu reset - it's just let's be nice 
change.
Currently application is unkillable when hanging on vm flush 

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


[Nouveau] [PATCH 4/5] drm/nv50: let applications hanging on vm flush to be killed

2012-04-22 Thread Marcin Slusarz
Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---
 drivers/gpu/drm/nouveau/nv50_graph.c |5 +
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c 
b/drivers/gpu/drm/nouveau/nv50_graph.c
index 6899547..a61853f 100644
--- a/drivers/gpu/drm/nouveau/nv50_graph.c
+++ b/drivers/gpu/drm/nouveau/nv50_graph.c
@@ -435,6 +435,11 @@ nv84_graph_tlb_flush(struct drm_device *dev, int engine)
if ((tmp  7) == 1)
idle = false;
}
+
+   if (fatal_signal_pending(current)) {
+   ret = -ERESTARTSYS;
+   break;
+   }
} while (!idle  !(timeout = ptimer-read(dev) - start  20));
 
if (timeout) {
-- 
1.7.8.5

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