memory leak in radeon.ko

David Mansfield dri at dm.cobite.com
Mon Aug 30 12:54:38 PDT 2010


Hi,  

I'm trying to track down an apparent memory leak in my Fedora 13 system
that seems to be in the radeon kernel module.  I have no proof the bug
is in the radeon driver except that that same sequence will not trigger
the leak on a similar box with using nouveau driver but can be
reproduced on a simylar box alse WITH radeon r600.  

My use case is, go to images.google.com, search for something, then
scroll the page up and down furiously.  You will lose 1GB of dynamic
kernel allocations is about 5 seconds.

The version I'm running is from Fedora 13 updates, which after comparing
with latest git seems quite a bit behind the current version.

I have examined the radeon code in the F13 kernel and found an apparent
leak in the r600_cs.c module (my card is r600 based).  The "p->track"
allocation is never freed (allocated line 763, probably should be freed
line 821 or so). 

It seems we need this:

--- r600_cs.c.orig	2010-08-30 13:34:56.793198147 -0400
+++ r600_cs.c	2010-08-30 13:36:10.021198095 -0400
@@ -826,6 +826,7 @@
 	}
 	kfree(parser->chunks);
 	kfree(parser->chunks_array);
+	kfree(parser->track);
 }


This does not seem to the case in latest git code, where "p->track" is
handled somewhat differently.

The question is, is it possible this leak can cause a GB of damage in
seconds?  If so, does the above use case seem likely to trigger?

BTW, I have a bug in rh bugzilla for this,
https://bugzilla.redhat.com/show_bug.cgi?id=615505 


-- 
Thanks,
David Mansfield
Cobite, INC.




More information about the dri-devel mailing list