[Intel-gfx] [PATCH 3/3] Consolidate gem object list dumping
Ben Gamari
bgamari at gmail.com
Wed Feb 18 16:47:44 CET 2009
For the record, this patch set is the proc-rework branch of the
repository at git://mw0.ath.cx/linux-drm.git. Just figured that might
make things easier for people.
- Ben
On Tue, Feb 17, 2009 at 8:08 PM, Ben Gamari <bgamari at gmail.com> wrote:
> Here we eliminate a few functions in favor of using a single function
> to dump from all of the object lists.
>
> Signed-Off-By: Ben Gamari <bgamari at gmail.com>
> ---
> 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 7ad49d7..9928df4 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);
> }
> @@ -177,9 +145,9 @@ static int i915_hws_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, (void *) ACTIVE_LIST},
> + {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST},
> + {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) 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.1.3
>
>
More information about the Intel-gfx
mailing list