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

Martin Peres martin.peres at free.fr
Mon Apr 23 10:09:57 PDT 2012


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


More information about the dri-devel mailing list