[ELDK] Jumbo Frames, sil24 SATA driver, and kswapd0 page allocation failures
Jonathan.Haws at sdl.usu.edu
Wed Aug 12 18:00:06 CEST 2009
> If you run a 2.6.31 kernel, then why do you claim to have problems with
> the ELDK? ;)
The reason I subscribed to this is because I got the kernel source and everything else attributed to our setup from following the ELDK instructions. I will look into that other list.
> The only question that came to my mind - how do you infer that the sil
> driver is not releasing memory? Maybe I read your mail too quickly, but
> I cannot find data for such a claim.
The reason I claim that the sil driver is not releasing memory is because when I run a program that simply writes data to our disk and monitor the amount of free memory available, it drops to almost nothing (just a couple of megabytes). When I do a cat /proc/buddyinfo, I get dangerously low on available pages.
~ # free
total used free shared buffers
Mem: 256672 249820 6852 0 208
Swap: 0 0 0
Total: 256672 249820 6852
~ # cat proc/buddyinfo
Node 0, zone DMA 1 1 3 2 1 6 2 2 1 2 21
In my first email I said that things would work when I just ran the sil driver - what I really mean is, though I run low on memory, the kernel does not crash. Only when I am capturing data on the network does it crash (if I am also writing that data to disk).
What it seems like to me is that the write() system call is causing the driver to allocate some memory to setup the DMA to the disk. Once that is complete, the memory does not seem to get released back to the kernel. Things are getting released to an extent, but something is hanging onto memory in a bad way. At first I thought it was due to the fact that I increased the rmem and wmem default settings for the network driver (and also increased the MTU to 9014 bytes), but if I run the network alone, it works great and I get super high throughput (36 MB/s or more :) ).
Anyway, I will also check that linuxppc-dev list to see if anyone there can shed some light on what is going on. This is the last obstacle I have to get our target up and running.
More information about the eldk