Comment 25 for bug 345714

Revision history for this message
Robbie Williamson (robbiew) wrote :

Did a lot of debugging yesterday using the latest libdrm git tree, and the problem appears to be in /libdrm/intel/intel_bufmgr_fake.c. Specifically around the drm_intel_fake_bo_unreference_locked function (line 873). The function has a "funky" for loop that calls itself, and I'm pretty sure it's not properly checking all the blocks it attempts to free....thus freeing up memory it shouldn't. I was actually able to switch VTs after adding some memory checks and tweaking the loop, but there's still a memory "stomping" issue in the function...as the X session will simply hang and issue a backtrace after a few minutes of activity. Will try to continue to debug today. I will also check out the git tree history of this file as well.