[Intel-gfx] [PATCH] Consolidate gem object list dumping

Ben Gamari bgamari at gmail.com
Mon Jan 19 22:06:41 CET 2009


---
 drivers/gpu/drm/i915/i915_gem_debugfs.c |   84 ++++++++++---------------------
 1 files changed, 26 insertions(+), 58 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_debugfs.c b/drivers/gpu/drm/i915/i915_gem_debugfs.c
index cd19e0a..82ba9b5 100644
--- a/drivers/gpu/drm/i915/i915_gem_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_gem_debugfs.c
@@ -9,69 +9,36 @@
 
 #if defined(CONFIG_DEBUG_FS)
 
-static int i915_gem_active_info(struct seq_file *m, void *data)
-{
-	struct drm_info_node *node = (struct drm_info_node *) m->private;
-	struct drm_device *dev = node->minor->dev;
-	drm_i915_private_t *dev_priv = dev->dev_private;
-	struct drm_i915_gem_object *obj_priv;
+#define ACTIVE_LIST	1
+#define FLUSHING_LIST	2
+#define INACTIVE_LIST	3
 
-	seq_printf(m, "Active:\n");
-	list_for_each_entry(obj_priv, &dev_priv->mm.active_list,
-			list)
-	{
-		struct drm_gem_object *obj = obj_priv->obj;
-		if (obj->name) {
-			seq_printf(m, "    %p(%d): %08x %08x %d\n",
-					obj, obj->name,
-					obj->read_domains, obj->write_domain,
-					obj_priv->last_rendering_seqno);
-		} else {
-			seq_printf(m, "       %p: %08x %08x %d\n",
-					obj,
-					obj->read_domains, obj->write_domain,
-					obj_priv->last_rendering_seqno);
-		}
-	}
-	return 0;
-}
-
-static int i915_gem_flushing_info(struct seq_file *m, void *data)
+static int i915_gem_object_list_info(struct seq_file *m, void *data)
 {
 	struct drm_info_node *node = (struct drm_info_node *) m->private;
+	uintptr_t list = (uintptr_t) node->info_ent->data;
+	struct list_head *head;
 	struct drm_device *dev = node->minor->dev;
 	drm_i915_private_t *dev_priv = dev->dev_private;
 	struct drm_i915_gem_object *obj_priv;
 
-	seq_printf(m, "Flushing:\n");
-	list_for_each_entry(obj_priv, &dev_priv->mm.flushing_list,
-			list)
-	{
-		struct drm_gem_object *obj = obj_priv->obj;
-		if (obj->name) {
-			seq_printf(m, "    %p(%d): %08x %08x %d\n",
-					obj, obj->name,
-					obj->read_domains, obj->write_domain,
-					obj_priv->last_rendering_seqno);
-		} else {
-			seq_printf(m, "       %p: %08x %08x %d\n", obj,
-					obj->read_domains, obj->write_domain,
-					obj_priv->last_rendering_seqno);
-		}
+	switch (list) {
+	case ACTIVE_LIST:
+		head = &dev_priv->mm.active_list;
+		break;
+	case INACTIVE_LIST:
+		head = &dev_priv->mm.inactive_list;
+		break;
+	case FLUSHING_LIST:
+		head = &dev_priv->mm.flushing_list;
+		break;
+	default:
+		DRM_INFO("Ooops, unexpected list\n");
+		return 0;
 	}
-	return 0;
-}
-
-static int i915_gem_inactive_info(struct seq_file *m, void *data)
-{
-	struct drm_info_node *node = (struct drm_info_node *) m->private;
-	struct drm_device *dev = node->minor->dev;
-	drm_i915_private_t *dev_priv = dev->dev_private;
-	struct drm_i915_gem_object *obj_priv;
 
-	seq_printf(m, "Inactive:\n");
-	list_for_each_entry(obj_priv, &dev_priv->mm.inactive_list,
-			list)
+	seq_printf(m, "Active:\n");
+	list_for_each_entry(obj_priv, head, list)
 	{
 		struct drm_gem_object *obj = obj_priv->obj;
 		if (obj->name) {
@@ -80,7 +47,8 @@ static int i915_gem_inactive_info(struct seq_file *m, void *data)
 					obj->read_domains, obj->write_domain,
 					obj_priv->last_rendering_seqno);
 		} else {
-			seq_printf(m, "       %p: %08x %08x %d\n", obj,
+			seq_printf(m, "       %p: %08x %08x %d\n",
+					obj,
 					obj->read_domains, obj->write_domain,
 					obj_priv->last_rendering_seqno);
 		}
@@ -270,9 +238,9 @@ static int i915_execinfo_info(struct seq_file *m, void *data)
 
 
 static struct drm_info_list i915_gem_debugfs_list[] = {
-	{"i915_gem_active", i915_gem_active_info, 0},
-	{"i915_gem_flushing", i915_gem_flushing_info, 0},
-	{"i915_gem_inactive", i915_gem_inactive_info, 0},
+	{"i915_gem_active", i915_gem_object_list_info, 0, ACTIVE_LIST},
+	{"i915_gem_flushing", i915_gem_object_list_info, 0, FLUSHING_LIST},
+	{"i915_gem_inactive", i915_gem_object_list_info, 0, INACTIVE_LIST},
 	{"i915_gem_request", i915_gem_request_info, 0},
 	{"i915_gem_seqno", i915_gem_seqno_info, 0},
 	{"i915_gem_interrupt", i915_interrupt_info, 0},
-- 
1.6.0.6




More information about the Intel-gfx mailing list