]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/framebuffer: Print task that allocated the fb in debug info.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Wed, 20 Dec 2017 09:35:44 +0000 (10:35 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Wed, 20 Dec 2017 14:30:17 +0000 (15:30 +0100)
This is is very useful to finding sources of leaked framebufers.
The fbcon fb is annotated with [fbcon], to give it a better name
than kworker.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171220093545.613-3-maarten.lankhorst@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/drm_framebuffer.c
include/drm/drm_framebuffer.h

index 4a61e1aef41b0c79e342bea521f4109ab65a6682..035784ddd13363eec627425cf7e6a2600b9b7469 100644 (file)
@@ -1896,6 +1896,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
        if (ret < 0)
                return ret;
 
+       strcpy(fb_helper->fb->comm, "[fbcon]");
        return 0;
 }
 
index d63d4c2ac4c8126e8d38cdcc32638893cb1fcfb2..5a13ff29f4f04af99c61fa07261a35a44ac0dd8e 100644 (file)
@@ -664,6 +664,7 @@ int drm_framebuffer_init(struct drm_device *dev, struct drm_framebuffer *fb,
        INIT_LIST_HEAD(&fb->filp_head);
 
        fb->funcs = funcs;
+       strcpy(fb->comm, current->comm);
 
        ret = __drm_mode_object_add(dev, &fb->base, DRM_MODE_OBJECT_FB,
                                    false, drm_framebuffer_free);
@@ -978,6 +979,7 @@ void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent,
        struct drm_format_name_buf format_name;
        unsigned int i;
 
+       drm_printf_indent(p, indent, "allocated by = %s\n", fb->comm);
        drm_printf_indent(p, indent, "refcount=%u\n",
                          drm_framebuffer_read_refcount(fb));
        drm_printf_indent(p, indent, "format=%s\n",
index dccb897951bada497603e41f6bb21ec02687a72e..c50502c656e5751374ed4e088540285fb1ee95f4 100644 (file)
@@ -121,6 +121,12 @@ struct drm_framebuffer {
         * @base: base modeset object structure, contains the reference count.
         */
        struct drm_mode_object base;
+
+       /**
+        * @comm: Name of the process allocating the fb, used for fb dumping.
+        */
+       char comm[TASK_COMM_LEN];
+
        /**
         * @format: framebuffer format information
         */