Red Hat Bugzilla – Bug 148890
ndiswrapper exposes kernel memory leak
Last modified: 2015-01-04 17:17:01 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.5)
Description of problem:
After installing ndiswrapper 1.0 and setting up my wireless network
the other day, I left my laptop on with the wireless running. After
coming back a few hours later, the computer was very slow to respond.
I checked the memory usage and my RAM was close to full when not
including buffers. The swap file usage was also unusually high.
slabtop revealed that size-64 was over 250 MB in Cache Size. With
ndiswrapper loaded and the wireless going, this value climbs at a
steady rate. Without ndiswrapper, it appears to be fairly stable.
Others have also noticed this problem with other distros, so it seems
to be a general kernel problem. A message to the ndiswrapper list
says this is definitely a problem with kernels 2.6.10 through 11-rc3
and the status of 11-rc4 is unknown.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Get ndiswrapper 1.0 and build it
2. Run slabtop and notice the Cache Size column for size-64 entry,
also note amount of free RAM reported by free
3. modprobe ndiswrapper and setup wireless for use
4. Run slabtop again and watch Cache Size column for size-64 entry
climb up at about 4 kB per update
5. Eventually, RAM will be used and the swap file will begin to be
Actual Results: After leaving my laptop running (idle) for several
hours with ndiswrapper loaded and wireless setup, the indicated Cache
Size of the size-64 entry in slabtop was over 250 MB. Right after
boot, this value is a few hundred kB. My RAM was almost completely
full (not including buffers) and the used swap file was a couple
hundered MB (it is normally fairly small).
Expected Results: The kernel should not leak memory.
I've marked this as high because it mentions a memory leak. I don't
know if I'd call it a severe leak, but it is substantial. I have 512
MB of RAM, but I suspect that with less RAM, this could be a major
problem much more quickly. A rough estimate is about 4 kB every
couple seconds or so.
Well, it seems I may have spoken too soon. It seems that ndiswrapper
misinterpreted something in the NDIS protocol. This lead to a
situation where the Windows driver was making numerous calls to a
function that the wrapper allocated memory in, but corresponding free
calls were not made. I was told this behavior was only seen in
certain kernel versions, thus making it appear to be a kernel thing.
It now seems to be an ndiswrapper thing, so I'm marking it NOTABUG (as
far as the kernel goes). For those interested, it should be fixed in
ndiswrapper 1.1rc1 as of 2005-02-21. There is also a patch for
version 1.0 if you can only use that as I have only been able to with
64-bit Broadcom drivers.
Sorry for the false alarm :).