FreeBSD boxes as a 'router'...

Adrian Chadd adrian at freebsd.org
Wed Nov 21 07:55:08 UTC 2012


Something that has popped up a few times, even recently, is breaking
out of an RX loop after you service a number of frames.

During stupidly high levels of RX, you may find the NIC happily
receiving frames faster than you can service the RX queue. If this
occurs, you could end up just plain being stuck there.

So what I've done in the past is to loop over a certain number of
frames, then schedule a taskqueue to service whatever's left over.

I've also had to do some proactive frame dropping at the driver layer
when under ridiculous levels of RX load, but that's a different story.

I wonder how many drivers break out of an RX loop after a fixed amount of time..


adrian


More information about the freebsd-net mailing list