diff mbox

drm/radeon: Take IH ring into account for test size calculation.

Message ID 1313767459-7796-1-git-send-email-michel@daenzer.net (mailing list archive)
State Accepted
Headers show

Commit Message

Michel Dänzer Aug. 19, 2011, 3:24 p.m. UTC
From: Michel Dänzer <michel.daenzer@amd.com>

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
---
 drivers/gpu/drm/radeon/radeon_test.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

Comments

Michel Dänzer Aug. 23, 2011, 9:49 a.m. UTC | #1
On Fre, 2011-08-19 at 14:59 -0400, Alex Deucher wrote: 
> 2011/8/19 Michel Dänzer <michel@daenzer.net>:
> > From: Michel Dänzer <michel.daenzer@amd.com>
> >
> > Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
> 
> Should probably also take into account the additional CP rings we
> allocate on cayman.

Thanks for the heads up.

As we'd probably keep missing new additions like that, I'll post a
followup patch to just silently abort on BO allocation/pinning failure
instead.
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_test.c b/drivers/gpu/drm/radeon/radeon_test.c
index dee4a0c..1ebd0fe 100644
--- a/drivers/gpu/drm/radeon/radeon_test.c
+++ b/drivers/gpu/drm/radeon/radeon_test.c
@@ -40,10 +40,14 @@  void radeon_test_moves(struct radeon_device *rdev)
 	size = 1024 * 1024;
 
 	/* Number of tests =
-	 * (Total GTT - IB pool - writeback page - ring buffer) / test size
+	 * (Total GTT - IB pool - writeback page - ring buffers) / test size
 	 */
-	n = ((u32)(rdev->mc.gtt_size - RADEON_IB_POOL_SIZE*64*1024 - RADEON_GPU_PAGE_SIZE -
-	     rdev->cp.ring_size)) / size;
+	n = rdev->mc.gtt_size - RADEON_IB_POOL_SIZE*64*1024 - rdev->cp.ring_size;
+	if (rdev->wb.wb_obj)
+		n -= RADEON_GPU_PAGE_SIZE;
+	if (rdev->ih.ring_obj)
+		n -= rdev->ih.ring_size;
+	n /= size;
 
 	gtt_obj = kzalloc(n * sizeof(*gtt_obj), GFP_KERNEL);
 	if (!gtt_obj) {