[Nouveau] Advice about debugging nouveau driver suspend issue (init_on_alloc=1 and init_on_free=1)

Karol Herbst kherbst at redhat.com
Wed Aug 10 11:59:07 UTC 2022


On Wed, Aug 10, 2022 at 12:42 PM Computer Enthusiastic
<computer.enthusiastic at gmail.com> wrote:
>
> Hello,
>
> The "supend to ram" issue (system freeze when resuming after suspend
> to ram or disk hibernation) is still affecting the nouveau kernel
> module from linux version 5 and above with nvidia GeForce 9600M GT and
> other nvidia graphic card with the same chipset [1][2][3].
>
> I've been successfully using the "work in progress" patch by Karol
> Herbst [4] to solve the "supend to ram" issue since it was proposed
> for an apparent different issue ("[GT216][Linux 5.16.4] Long stalls in
> dma_fence_default_wait") [5] whose root cause is probably the same.
>
> I send this message to bring to your attention the aforementioned
> patch [4] (below in the message as text) to evaluate it for  the next
> steps for possible inclusion  in the upstream kernel version.
>

I think it might be better to CC Ben and Lyude, who _might_ have a
good idea on what's the proper patch, but maybe the patch is fine as
it is?

> Thanks.
>
> [1] https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/issues/547
> [2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989705#5
> [3] https://bugzilla.kernel.org/show_bug.cgi?id=213617
> [4] https://gitlab.freedesktop.org/drm/nouveau/-/issues/156#note_1385770
> [5] https://gitlab.freedesktop.org/drm/nouveau/-/issues/156
>
> ----- %= ----- %= ----- %=
>
> From 70271cb0aa30e4523d39c3942e84b16fe18338f5 Mon Sep 17 00:00:00 2001
> From: Karol Herbst <kherbst at redhat.com>
> Date: Mon, 16 May 2022 17:40:20 +0200
> Subject: [PATCH] nouveau WIP
>
> ---
>  drivers/gpu/drm/nouveau/nouveau_bo.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c
> b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 05076e530e7d..b6343741eda6 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -820,6 +820,7 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo,
> int evict,
>   if (ret == 0) {
>   ret = nouveau_fence_new(chan, false, &fence);
>   if (ret == 0) {
> + nouveau_fence_wait(fence, false, false);
>   ret = ttm_bo_move_accel_cleanup(bo,
>   &fence->base,
>   evict, false,
> --
> 2.35.3
>



More information about the Nouveau mailing list