Re: [Nouveau] [PATCH 4/5] drm/nv50: let applications hanging on vm flush to be killed
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
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
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