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 Slusarz
> > ---
> >   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


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 Slusarz
---
  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


[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 
---
 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