Re: eth0: memory shortage

Mitch Adair
2002-07-03T20:12:49Z

> I keep getting these messages (like about twice a day) in the messages:
> eth0: memory shortage
> eth0: memory shortage
> eth1: memory shortage
> eth1: memory shortage
>
>
> Any idea what could be the reason behind this?

Well this message is coming from drivers/net/3c59x.c in a bit of code that
goes:

/* Refill the Rx ring buffers. */
for (; vp->cur_rx - vp->dirty_rx > 0; vp->dirty_rx++) {
struct sk_buff *skb;
entry = vp->dirty_rx % RX_RING_SIZE;
if (vp->rx_skbuff[entry] == NULL) {
skb = dev_alloc_skb(PKT_BUF_SZ);
if (skb == NULL) {
static unsigned long last_jif;
if ((jiffies - last_jif) > 10 * HZ) {
printk(KERN_WARNING "%s: memory shortage
\n", dev->name);
last_jif = jiffies;
}
if ((vp->cur_rx - vp->dirty_rx) == RX_RING_SIZE)
mod_timer(&vp->rx_oom_timer, RUN_AT(HZ *
1));
break; /* Bad news! */
}

So basically it looks like it is taking much longer to refill rx ring buffers
than it should.

On past 2.4 kernels I recall the eepro100 would report a message of "out
of resources" and the fix suggested there was to increase the values in
/proc/sys/vm/freepages. Perhaps it's a similar issue with the 3c59x ??

Perhaps one of the guru's could comment?

M