View Single Post
Old 08-10-10, 03:42 PM   #1
Join Date: Aug 2004
Posts: 11
Default vmalloc virtual space leak


I would like to report an issue we're seeing with both the 256.35 and
256.44 nvidia drivers on both x86 and x86_64 systems with various types
of graphics cards. We are using 2.6.31.x based kernels.

What we are seeing is vmalloc virtual space being allocated but not
later freed.

If I do "glxgears", I see two os_map_kernel_space() NV_MEMORY_WRITECOMBINED
vmalloc space mappings appear.

But after killing "glxgears" off, these 2 ioremap mappings are not
freed, and the vmalloc virtual space remains allocated/in-use.
Repeated glxgears invocations show additional ioremap mappings
permanently appearing.

A cat of /proc/vmallocinfo shows the new new allocations appearing,
but never being freed, even if the X session is closed and the
nvidia driver is unloaded.

If we run a stress test with something like viewperf over several days,
we eventually run out of vmalloc space and nvidia driver requests for
ioremap() calls start to fails, and thus we require a reboot to get
back to normal. Since x86 has a smaller vmalloc virtual space size,
it is more noticable on x86 than x86_64.

The physical pages underlying these virtual mappings appear to be
re-used, and thus a physical memory leak does not seem to be occuring.

And while a virtual space leak is less serious, it would still be nice
it this issue could be investigated and hopefully fixed.

Thank you for yor time.
johnb is offline   Reply With Quote