Marcin Slusarz
2012-Apr-22 22:18 UTC
[Nouveau] [PATCH 4/5] drm/nv50: let applications hanging on vm flush to be killed
Signed-off-by: Marcin Slusarz <marcin.slusarz at 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 >
2000000000));
if (timeout) {
--
1.7.8.5
Martin Peres
2012-Apr-23 17:09 UTC
[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<marcin.slusarz at 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> 2000000000)); > > 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
Reasonably Related Threads
- [PATCH v2 4/4] drm/nouveau: gpu lockup recovery
- [RFC PATCH 5/5] drm/nouveau: gpu lockup recovery
- [PATCH] drm/nv50: decode PGRAPH status registers on TLB flush fail
- [PATCH 01/10] drm/nv50: decode PGRAPH status registers on TLB flush fail
- [patch] add nv50 voodoo