All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <deathsimple@vodafone.de>
To: airlied@redhat.com
Cc: "Christian König" <deathsimple@vodafone.de>,
	dri-devel@lists.freedesktop.org
Subject: [PATCH 08/26] drm/radeon: add sub allocator debugfs file
Date: Mon, 30 Apr 2012 16:50:46 +0200	[thread overview]
Message-ID: <1335797464-14317-9-git-send-email-deathsimple@vodafone.de> (raw)
In-Reply-To: <1335797464-14317-1-git-send-email-deathsimple@vodafone.de>

Dumping the current allocations.

Signed-off-by: Christian König <deathsimple@vodafone.de>
---
 drivers/gpu/drm/radeon/radeon_object.h |    5 +++++
 drivers/gpu/drm/radeon/radeon_ring.c   |   22 ++++++++++++++++++++++
 drivers/gpu/drm/radeon/radeon_sa.c     |   15 +++++++++++++++
 3 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/radeon/radeon_object.h
index f9104be..d9b9333 100644
--- a/drivers/gpu/drm/radeon/radeon_object.h
+++ b/drivers/gpu/drm/radeon/radeon_object.h
@@ -161,5 +161,10 @@ extern int radeon_sa_bo_new(struct radeon_device *rdev,
 			    unsigned size, unsigned align);
 extern void radeon_sa_bo_free(struct radeon_device *rdev,
 			      struct radeon_sa_bo *sa_bo);
+#if defined(CONFIG_DEBUG_FS)
+extern void radeon_sa_bo_dump_debug_info(struct radeon_sa_manager *sa_manager,
+					 struct seq_file *m);
+#endif
+
 
 #endif
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index 1b020ef..1d9bce9 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -529,6 +529,23 @@ static int radeon_debugfs_ib_info(struct seq_file *m, void *data)
 static struct drm_info_list radeon_debugfs_ib_list[RADEON_IB_POOL_SIZE];
 static char radeon_debugfs_ib_names[RADEON_IB_POOL_SIZE][32];
 static unsigned radeon_debugfs_ib_idx[RADEON_IB_POOL_SIZE];
+
+static int radeon_debugfs_sa_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;
+	struct radeon_device *rdev = dev->dev_private;
+
+	radeon_sa_bo_dump_debug_info(&rdev->ib_pool.sa_manager, m);
+
+	return 0;
+
+}
+
+static struct drm_info_list radeon_debugfs_sa_list[] = {
+        {"radeon_sa_info", &radeon_debugfs_sa_info, 0, NULL},
+};
+
 #endif
 
 int radeon_debugfs_ring_init(struct radeon_device *rdev, struct radeon_ring *ring)
@@ -555,6 +572,11 @@ int radeon_debugfs_ib_init(struct radeon_device *rdev)
 {
 #if defined(CONFIG_DEBUG_FS)
 	unsigned i;
+	int r;
+
+	r = radeon_debugfs_add_files(rdev, radeon_debugfs_sa_list, 1);
+	if (r)
+		return r;
 
 	for (i = 0; i < RADEON_IB_POOL_SIZE; i++) {
 		sprintf(radeon_debugfs_ib_names[i], "radeon_ib_%04u", i);
diff --git a/drivers/gpu/drm/radeon/radeon_sa.c b/drivers/gpu/drm/radeon/radeon_sa.c
index 4ce5c51..013a787 100644
--- a/drivers/gpu/drm/radeon/radeon_sa.c
+++ b/drivers/gpu/drm/radeon/radeon_sa.c
@@ -192,3 +192,18 @@ void radeon_sa_bo_free(struct radeon_device *rdev, struct radeon_sa_bo *sa_bo)
 	list_del_init(&sa_bo->list);
 	spin_unlock_irqrestore(&sa_bo->manager->lock, flags);
 }
+
+#if defined(CONFIG_DEBUG_FS)
+void radeon_sa_bo_dump_debug_info(struct radeon_sa_manager *sa_manager,
+				  struct seq_file *m)
+{
+	struct radeon_sa_bo *i;
+	unsigned long flags;
+
+	spin_lock_irqsave(&sa_manager->lock, flags);
+	list_for_each_entry(i, &sa_manager->sa_bo, list) {
+		seq_printf(m, "offset %08d: size %4d\n", i->offset, i->size);
+	}
+	spin_unlock_irqrestore(&sa_manager->lock, flags);
+}
+#endif
-- 
1.7.5.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2012-04-30 14:51 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-30 14:50 Include request for reset-rework branch Christian König
2012-04-30 14:50 ` [PATCH 01/26] drm/radeon: make radeon_gpu_is_lockup a per ring function Christian König
2012-04-30 14:50 ` [PATCH 02/26] drm/radeon: replace gpu_lockup with ring->ready flag Christian König
2012-04-30 14:50 ` [PATCH 03/26] drm/radeon: register ring debugfs handlers on init Christian König
2012-04-30 14:50 ` [PATCH 04/26] drm/radeon: use central function for IB testing Christian König
2012-04-30 14:50 ` [PATCH 05/26] drm/radeon: rework gpu lockup detection and processing Christian König
2012-04-30 14:50 ` [PATCH 06/26] drm/radeon: fix a bug in the SA code Christian König
2012-04-30 14:50 ` [PATCH 07/26] drm/radeon: add proper locking to the SA v2 Christian König
2012-04-30 15:58   ` Jerome Glisse
2012-05-01 12:31     ` Christian König
2012-04-30 14:50 ` Christian König [this message]
2012-04-30 14:50 ` [PATCH 09/26] drm/radeon: add biggest hole tracking and wakequeue to the sa v3 Christian König
2012-04-30 15:45   ` Jerome Glisse
2012-05-01 12:22     ` Christian König
2012-05-01 15:24       ` Jerome Glisse
2012-04-30 14:50 ` [PATCH 10/26] drm/radeon: add try_free callback to the SA Christian König
2012-04-30 14:50 ` [PATCH 11/26] drm/radeon: use inline functions to calc sa_bo addr Christian König
2012-04-30 14:50 ` [PATCH 12/26] drm/radeon: simplify semaphore handling Christian König
2012-04-30 14:50 ` [PATCH 13/26] drm/radeon: return -ENOENT in fence_wait_next v2 Christian König
2012-04-30 14:50 ` [PATCH 14/26] drm/radeon: rename fence_wait_last to fence_wait_empty Christian König
2012-04-30 14:50 ` [PATCH 15/26] drm/radeon: add general purpose fence signaled callback Christian König
2012-04-30 14:50 ` [PATCH 16/26] drm/radeon: don't keep list of created fences Christian König
2012-04-30 14:50 ` [PATCH 17/26] drm/radeon: rip out the ib pool v2 Christian König
2012-04-30 14:50 ` [PATCH 18/26] drm/radeon: fix a bug with the ring syncing code Christian König
2012-04-30 14:50 ` [PATCH 19/26] drm/radeon: rework recursive gpu reset handling Christian König
2012-04-30 14:50 ` [PATCH 20/26] drm/radeon: remove recursive mutex implementation Christian König
2012-04-30 14:50 ` [PATCH 21/26] drm/radeon: move lockup detection code into radeon_ring.c Christian König
2012-04-30 14:51 ` [PATCH 22/26] drm/radeon: make lockup timeout a module param Christian König
2012-04-30 14:51 ` [PATCH 23/26] drm/radeon: unlock the ring mutex while waiting for the next fence Christian König
2012-04-30 14:51 ` [PATCH 24/26] drm/radeon: make forcing ring activity a common function Christian König
2012-04-30 14:51 ` [PATCH 25/26] drm/radeon: remove r300_gpu_is_lockup Christian König
2012-04-30 14:51 ` [PATCH 26/26] drm/radeon: remove cayman_gpu_is_lockup Christian König
2012-04-30 15:12 ` Include request for reset-rework branch Jerome Glisse
2012-04-30 15:12   ` Jerome Glisse
2012-04-30 15:37     ` Christian König
2012-04-30 16:26       ` Jerome Glisse
2012-05-01 13:38         ` Christian König
2012-05-01 13:37 ` Alex Deucher
  -- strict thread matches above, loose matches on Subject: below --
2012-04-25 12:46 Reworking of GPU reset logic Christian König
2012-04-25 12:46 ` [PATCH 08/26] drm/radeon: add sub allocator debugfs file Christian König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1335797464-14317-9-git-send-email-deathsimple@vodafone.de \
    --to=deathsimple@vodafone.de \
    --cc=airlied@redhat.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.