On Wed, Mar 23, 2011 at 08:17:11AM +0100, Mark Kettenis wrote: > > From: David Gwynne <l...@animata.net> > > Date: Wed, 23 Mar 2011 14:21:19 +1000 > > > > makes sense to me. > > While it is a potential solution for the problem at hand (and one I > didn't consider yet) can we step back and think whether this is a > solution that will work for *all* our ethernet drivers?
I have looked at em that refills the transmit buffer more agressively in em_intr(). There a transmit interrupt also results in a receive refill. My first idea was also to extend the hme_intr() function. But it has drawbacks: - It is not guaranteed that there is any interrupt when the receive ring is empty. - I don't want to refill too often to avoid additional pressure on a system running out of mbufs. The bge driver adds a one tick timeout after refill if there are less than 8 buffers in the ring. I have no experience with other drivers. bluhm