Julian Elischer wrote:
On 4/30/10 1:23 PM, Maxim Sobolev wrote:
Hi,

Many network drivers in the FreeBSD kernel use the IFQ_MAXLEN value to
set length of the outgoing packets queue. The default value for that
parameter is only 50, which is pretty low especially for the cases when
the system handles lot of small packets and can cause ENOBUFS in
applications under the load. The following patch makes IFQ_MAXLEN a
tunable. I am also tempted to bump the default value for IFQ_MAXLEN
10-fold, but would like to hear what do people think about it first.

http://sobomax.sippysoft.com/IFQ_MAXLEN.diff

so just tunable? not a sysctl :-)

The sysctl would require much bigger rewrite. As long as I understand the value is now cached in many instances of the ifnet structure, and some drivers even use their own queue length instead of IFQ_MAXLEN. Therefore, even if I make this parameter a sysctl one would have to destroy interface and create it again in order for the change to have an effect. Therefore, keeping it tunable would be less confusing.

patch could be a lot smaller if you defined IFQ_MAXLEN to be V_ifqmaxlen (do different vimages want a different value?)

I am not quite sure about that. AFAIK vimage is more high-level thing, while this parameter controls queue length between kernel and hardware interface driver. vimage lies above that.

-Maxim
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to