On 2010-09-08 16:45, Eric Dumazet wrote: <CUT>
Thanks You are running a 32bit kernel, so kernel can _not_ use more than 800 Mbytes of memory (Lowmem) for his own needs (including all network buffers) If you cannot switch to 64bit kernel, then you are forced to use lower queue lengths (I see your imq devices use insane 11000 txqueuelen) Each frame use 4K, maybe 16K, it depends on MTU. even if we dont take into account other needs : 11000 * 16K = 170 Mbytes per imqX 1000 * 4K = 4Mbytes per ethX 170M * 8 -> memory overflow Also /proc/sys/vm/min_free_kbytes limit is probably too small. Really, using a 32bit kernel on this machine is not wise. Even reducing physical ram to 4GB would be better, you would get more Lowmem memory ;) Since vmalloc is not used very much on your machine you can reduce vmalloc window from 128M to 32M to save 96MB of low mem (boot parameter : vmalloc=32M )
It is also possible to build a kernel using 2G/2G MEM SPLIT or even 1G/3G if there is small userspace activity. But indeed, x86-64 is the proper solution to choose.
Best regards, Krzysztof Olędzki -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html