[PATCH] drm: More debug info for fb leaks in mode_config_cleanup

Daniel Vetter daniel.vetter at ffwll.ch
Wed Apr 25 06:49:26 UTC 2018


On Wed, Apr 25, 2018 at 8:42 AM, Thomas Hellstrom <thellstrom at vmware.com> wrote:
> Hi,
>
> On 12/07/2017 03:49 PM, Daniel Vetter wrote:
>>
>> We're spotting this very rarely in CI, but have no idea. Let's add
>> more debug info about what's going on here.
>>
>> References: https://bugs.freedesktop.org/show_bug.cgi?id=102707
>> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
>> ---
>>   drivers/gpu/drm/drm_mode_config.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_mode_config.c
>> b/drivers/gpu/drm/drm_mode_config.c
>> index cc78b3d9e5e4..6ffe952142e6 100644
>> --- a/drivers/gpu/drm/drm_mode_config.c
>> +++ b/drivers/gpu/drm/drm_mode_config.c
>> @@ -469,6 +469,9 @@ void drm_mode_config_cleanup(struct drm_device *dev)
>>          */
>>         WARN_ON(!list_empty(&dev->mode_config.fb_list));
>>         list_for_each_entry_safe(fb, fbt, &dev->mode_config.fb_list, head)
>> {
>> +               struct drm_printer p = drm_debug_printer("[leaked fb]");
>> +               drm_printf(&p, "framebuffer[%u]:\n", fb->base.id);
>> +               drm_framebuffer_print_info(&p, 1, fb);
>>                 drm_framebuffer_free(&fb->base.refcount);
>>         }
>>
>
>
> Did we ever get to the bottom of what's causing those framebuffer leaks?
> We've seen sporadic framebuffer leaks when transitioning between one and two
> screens, but can't seem to repro with the latest drm-fixes branch?

https://bugs.freedesktop.org/show_bug.cgi?id=102707#c16

claims the fixes, but that was incomplete. Ville's recent work to
restructure the legacy fb refcounting is meant to plug this leak once
and for all. Given that vmwgfx also has some custom code (for the
fbdev stuff) could very well be that you have such issues too. See:

commit 5e9cfeba6abb7e1a3f240bd24eb29178f0b83716
Author: Ville Syrjälä <ville.syrjala at linux.intel.com>
Date:   Thu Mar 22 17:22:51 2018 +0200

    drm/atomic-helper: Drop plane->fb references only for
drm_atomic_helper_shutdown()

Note that this stuff is only in -fixes, so probably not what you're looking for.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list