Re: [PATCH] drm/gpuvm: take refcount on DRM device
From: Danilo Krummrich
Date: Mon Apr 20 2026 - 11:42:01 EST
On Mon Apr 20, 2026 at 11:28 AM CEST, Thomas Hellström wrote:
> I agree with your reasoning here, but current fact is that most (if not
> all) holders of a drm device reference (files, pagemaps, dma-bufs)
> currently also hold a module reference to protect against this, and
> drm_gpuvm would be an outlier.
I'm not convinced; if the DRM device has the requirement to not outlive the
module it is associated with, then the DRM device code has to take care of this
requirement, and not every caller of drm_dev_get().
Besides that, if GPUVM holds the module reference count on behalf of the DRM
device, it has the same effect that you rightfully point out below -- it breaks
rmmod.
> To fix this properly (lifting that requirement) one could introduce a
> drm device count in the module and have the module exit function wait
> for it to become zero, *and* that the code that did the last decrement
> finished executing.
>
> https://patchwork.freedesktop.org/patch/712146/?series=163298&rev=1
This looks like a reasonable fix to me. And it makes me conclude that we
basically agree on everything. :)
Regarding the reference count in the meantime, it remains that omitting it does
not solve the underlying problem, i.e. I still think it is orthogonal.
> Or one could also have the drm device hold a reference count on the
> driver module, but that would block unloading without previous unbind
> which is not typical driver behaviour and would likely be seen as a
> regression.