Subject: sn0: receive descriptors exhausted
To: xiamin <firstname.lastname@example.org>
From: Denny Gentry <email@example.com>
Date: 07/21/1997 09:51:00
The sonic DMAs a received packet into a data buffer. It then
needs a descriptor to write the address of the buffer and some
information about the packet (like its length) to hand it to the
driver. If it runs out, it interrupts.
Usually this means the sn driver didn't get to run for a long time
to clean up its descriptors. This can happen if there is a lot of
SCSI activity, since SCSI interrupts will block network interrupts.
Early in the morning the /etc/daily (etc) scripts run, causing lots of
disk activity. If someone tried to reach your machine while the
disk grinding was going on, it could easily cause it to run
out of descriptors.
A few weeks ago I submitted changes to increase the number of
receive descriptors by using a seperate 4K page just for
RX descs. Scott checked those changes in, so make sure you have a
"recent" kernel. I note from another message you sent that
you're running 1.2D, a 1.2G kernel will have more descriptors.
Since the Sonic requires its descriptors to be physically
contiguous, giving it even more descriptors would require having
a way to allocate physically contiguous memory.