2.6.39.3 nouveau_gart_manager_new() leaks memory (FIX)

Frank van Maarseveen frankvm at frankvm.com
Thu Aug 4 03:39:48 PDT 2011


On Thu, Jul 28, 2011 at 12:07:53PM +0200, Frank van Maarseveen wrote:
> /proc/slabinfo shows an anomaly on a 2.6.39.3 x86_64 system. After
> running F14 + kde4 for a while it shows high kmalloc-192 numbers:
> 
> # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab>...
> kmalloc-192       735694 735723    264   31    2 : tunables    0    0    0 : slabdata  23733  23733      0
> 
> Digging in /sys/kernel/slab/kmalloc-192/alloc_calls one line stands out:
> 
>  701960 nouveau_gart_manager_new+0x5d/0xf0 age=24/7405655/87972315 pid=1-4920 cpus=0-3
> 
> There are 709907 allocations total and according to
> /sys/kernel/slab/kmalloc-192/free_calls there are 52245 free
> calls total.

This seems to fix it:

diff -Nurp a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
--- a/drivers/gpu/drm/nouveau/nouveau_mem.c	2011-05-19 06:06:34.000000000 +0200
+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c	2011-08-03 10:58:22.919205352 +0200
@@ -848,6 +848,7 @@ nouveau_gart_manager_del(struct ttm_mem_
 		nouveau_vm_unmap(&node->tmp_vma);
 		nouveau_vm_put(&node->tmp_vma);
 	}
+	kfree(node);
 	mem->mm_node = NULL;
 }

-- 
Frank


More information about the dri-devel mailing list