2.1.78: Couldn't allocate a sk_buff

Mike Black (mblack@csihq.com)
Tue, 20 Jan 1998 09:11:59 -0500


Last several versions I've started getting these messages (I'm on 2.1.78
now):

Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1514.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1514.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1278.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1514.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1514.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1278.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1514.
Jan 19 18:29:55 picard kernel: eth0: Couldn't allocate a sk_buff of size
1514.

I've finally traced this down to the web server requesting several images at
once. Apparently the DEV_ALLOC_SKB fails. I'm using the 3c59x.c module (on
a 3C905) on a 32Meg P90 with apache 1.2.5.

A vmstat shows:

procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 1 0 3324 928 1964 11044 0 0 75 0 287 168 11 18 71
0 2 0 3324 528 2028 11396 0 0 31 0 501 367 10 23 67
0 1 0 3324 516 2028 11400 0 0 20 196 239 229 2 10 88
0 0 0 3324 508 2028 11408 0 0 17 37 232 96 4 7 89
0 0 0 3324 496 2028 11424 0 0 26 0 168 28 1 7 92
0 1 0 3324 500 2028 11412 0 0 83 0 206 124 8 9 83
0 1 0 3324 468 2028 11456 0 0 115 0 255 175 12 13 75

My guess is that the free memory gets low enough that the cache doesn't have
time to catch up and free some.

Any suggestions? Is this a problem? (P.S. The web server still
works....just the messages are annoying).