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
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to