#1139599 linux-base-7.0.10+deb14-amd64: amdgpu (ttm?) two Oops, locking the computer

Package:
src:linux
Source:
src:linux
Submitter:
Olaf Flebbe
Date:
2026-08-08 10:25:01 UTC
Severity:
normal
Tags:
#1139599#5
Date:
2026-06-10 07:01:09 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?
           Heavy use of LM-Studio with local GPU accellerated models.
           HW: AMD Ryzen™ 7 7840U w/ Radeon™ 780M Graphics × 16 (Framework 13
Laptop)

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

   Normal use (use gnome-calc for instance) while LM-Studio was active.

   * What was the outcome of this action?
        Moved the mouse: Computer totally locked, hat to power off.

   * What outcome did you expect instead?
        Mouse movement :)

   Happend two times with Kernel reports both mentioning "ttm something" and
"amdgpu_bo_move"

#1139599#12
Date:
2026-06-16 09:12:53 UTC
From:
To:
Hello,

a Debian user reported an issue while using the amdgpu user. The full
details are available at https://bugs.debian.org/1139599. The relvant (I
hope) parts are also in this mail, but you can find more logs there if
you want to take a look.

@Olaf: If you still have both issues in your logs, providing both might
help to identify the issue. Also it would be great to know, how reliably
you can reproduce the issue, in case we have to resort to bisecting or
testing a fix. Is this a regression, i.e. did the same workflow work
fine before, with an older kernel version? If so, which one?

I didn't find a similar report on lore.kernel.org. Does this ring a bell
for you anyhow?

There are a few amdgpu changes in 7.0.11 (since 7.0.10 which is the
kernel that showed the issue), but they don't look (to me that is) as if
they would resolve the problem.

Best regards
Uwe

#1139599#19
Date:
2026-06-16 09:18:41 UTC
From:
To:
That looks familiar, yes.

Just last night Samuel Ainsworth reported some bug in TTM which could trigger such issues. Putting him on CC.

Regards,
Christian.

#1139599#24
Date:
2026-06-16 09:37:01 UTC
From:
To:
I found 5 of these Oopses starting in June 9 with  kernel 7.0.10-1.

Found out that some of these oopses happened while waking up for
hibernation or running LLM's.
(some hangs when waking up did not leave traces in the logs)

It happens  almost every 2 days.

Hibernation worked great before (factoring out  the issues with the
parport module race when booting).


Best

Olaf

#1139599#29
Date:
2026-07-10 21:20:59 UTC
From:
To:
I asked LLM to analyse the issue.
#1139599#34
Date:
2026-08-08 10:16:17 UTC
From:
To:
Sorry for the AI slop, it DID not solve the issue.

However, newer kernels show a different error pattern, but only for
waking from hibernate.

I am closing this error and will try to submit a better diagnostic if
able for the current issue.

Thanks

On Fri, 10 Jul 2026 23:20:59 +0200 Olaf Flebbe <of@oflebbe.de> wrote:

 > diff --git a/drivers/gpu/drm/ttm/ttm_resource.c
b/drivers/gpu/drm/ttm/ttm_resource.c
 > index bfd9c68fcd9c..b065b1aba435 100644
 > --- a/drivers/gpu/drm/ttm/ttm_resource.c
 > +++ b/drivers/gpu/drm/ttm/ttm_resource.c
 > @@ -352,6 +352,7 @@ void ttm_resource_init(struct ttm_buffer_object *bo,
 > res->bus.is_iomem = false;
 > res->bus.caching = ttm_cached;
 > res->bo = bo;
 > + res->flags = 0;
 >
 > man = ttm_manager_type(bo->bdev, place->mem_type);
 > spin_lock(&bo->bdev->lru_lock);
 > @@ -380,8 +381,11 @@ void ttm_resource_fini(struct
ttm_resource_manager *man,
 > struct ttm_device *bdev = man->bdev;
 >
 > spin_lock(&bdev->lru_lock);
 > + if (list_empty(&res->lru.link))
 > + goto out;
 > list_del_init(&res->lru.link);
 > man->usage -= res->size;
 > +out:
 > spin_unlock(&bdev->lru_lock);
 > }
 > EXPORT_SYMBOL(ttm_resource_fini);
 > @@ -425,17 +429,24 @@ void ttm_resource_free(struct ttm_buffer_object
*bo, struct ttm_resource **res)
 > {
 > struct ttm_resource_manager *man;
 > struct dmem_cgroup_pool_state *pool;
 > + struct ttm_resource *resource;
 >
 > if (!*res)
 > return;
 >
 > + resource = *res;
 > + if (test_and_set_bit(TTM_RESOURCE_FLAG_FREED, &resource->flags))
 > + return;
 > +
 > + *res = NULL;
 > +
 > spin_lock(&bo->bdev->lru_lock);
 > - ttm_resource_del_bulk_move(*res, bo);
 > + ttm_resource_del_bulk_move(resource, bo);
 > spin_unlock(&bo->bdev->lru_lock);
 >
 > - pool = (*res)->css;
 > - man = ttm_manager_type(bo->bdev, (*res)->mem_type);
 > - man->func->free(man, *res);
 > + pool = resource->css;
 > + man = ttm_manager_type(bo->bdev, resource->mem_type);
 > + man->func->free(man, resource);
 > *res = NULL;
 > if (man->cg)
 > dmem_cgroup_uncharge(pool, bo->base.size);
 > diff --git a/include/drm/ttm/ttm_resource.h
b/include/drm/ttm/ttm_resource.h
 > index a5d386583fb6..1a58c0c000c5 100644
 > --- a/include/drm/ttm/ttm_resource.h
 > +++ b/include/drm/ttm/ttm_resource.h
 > @@ -30,6 +30,7 @@
 > #include <linux/mutex.h>
 > #include <linux/iosys-map.h>