On Tue, 16 Nov 2010, Maxim Sobolev wrote:

Log:
 MFC r207554:

     Add new tunable 'net.link.ifqmaxlen' to set default send interface
     queue length. The default value for this parameter is 50, which is
     quite low for many of today's uses and the only way to modify this
     parameter right now is to edit if_var.h file. Also add read-only
     sysctl with the same name, so that it's possible to retrieve the
     current value.

This was quite low for yestdeay's uses (starting in about 1995), but today
it is little missed since only yesterday's low-end hardware uses it.  Most
of today's interfaces are 1Gbps, and for this it is almost essential for
the hardware to have a ring buffer with > 50 entries, so most of today's
drivers ignore ifqmaxlen and set the queue length to the almost equally
bogus value of the ring buffer size (-1).  I set it to about 10000 instead
in bge and em (10000 is too large, but fixes streaming under certain loads
when hz is small).

Modified:
 stable/7/sys/arm/at91/if_ate.c
 stable/7/sys/arm/xscale/ixp425/if_npe.c
 stable/7/sys/contrib/dev/oltr/if_oltr.c
 stable/7/sys/dev/ae/if_ae.c
 stable/7/sys/dev/an/if_an.c
 stable/7/sys/dev/ar/if_ar.c
 stable/7/sys/dev/arl/if_arl.c
 stable/7/sys/dev/ath/if_ath.c
 stable/7/sys/dev/awi/awi.c
 stable/7/sys/dev/ce/if_ce.c
 stable/7/sys/dev/cm/smc90cx6.c
 stable/7/sys/dev/cnw/if_cnw.c
 stable/7/sys/dev/cp/if_cp.c
 stable/7/sys/dev/cs/if_cs.c
 stable/7/sys/dev/ctau/if_ct.c
 stable/7/sys/dev/cx/if_cx.c
 stable/7/sys/dev/cxgb/cxgb_main.c
 stable/7/sys/dev/ed/if_ed.c
 stable/7/sys/dev/ep/if_ep.c
 stable/7/sys/dev/ex/if_ex.c
 stable/7/sys/dev/ie/if_ie.c
 stable/7/sys/dev/iicbus/if_ic.c
 stable/7/sys/dev/ipw/if_ipw.c
 stable/7/sys/dev/iwi/if_iwi.c
 stable/7/sys/dev/le/lance.c
 stable/7/sys/dev/malo/if_malo.c
 stable/7/sys/dev/my/if_my.c
 stable/7/sys/dev/nxge/if_nxge.c
 stable/7/sys/dev/pdq/pdq_ifsubr.c
 stable/7/sys/dev/ppbus/if_plip.c
 stable/7/sys/dev/ral/rt2560.c
 stable/7/sys/dev/ral/rt2661.c
 stable/7/sys/dev/ray/if_ray.c
 stable/7/sys/dev/sbni/if_sbni.c
 stable/7/sys/dev/sbsh/if_sbsh.c
 stable/7/sys/dev/sn/if_sn.c
 stable/7/sys/dev/snc/dp83932.c
 stable/7/sys/dev/sr/if_sr.c
 stable/7/sys/dev/usb/if_aue.c
 stable/7/sys/dev/usb/if_axe.c
 stable/7/sys/dev/usb/if_cdce.c
 stable/7/sys/dev/usb/if_cue.c
 stable/7/sys/dev/usb/if_kue.c
 stable/7/sys/dev/usb/if_rue.c
 stable/7/sys/dev/usb/if_rum.c
 stable/7/sys/dev/usb/if_udav.c
 stable/7/sys/dev/usb/if_ural.c
 stable/7/sys/dev/usb/if_zyd.c
 stable/7/sys/dev/usb/udbp.c
 stable/7/sys/dev/vx/if_vx.c
 stable/7/sys/dev/wi/if_wi.c
 stable/7/sys/dev/wl/if_wl.c
 stable/7/sys/dev/wpi/if_wpi.c
 stable/7/sys/dev/xe/if_xe.c
 stable/7/sys/i4b/capi/capi_l4if.c
 stable/7/sys/i4b/driver/i4b_ing.c
 stable/7/sys/i4b/driver/i4b_isppp.c
 stable/7/sys/i4b/driver/i4b_trace.c
 stable/7/sys/i4b/layer1/ifpi/i4b_ifpi_pci.c
 stable/7/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c
 stable/7/sys/i4b/layer1/ifpnp/i4b_ifpnp_avm.c
 stable/7/sys/i4b/layer1/ihfc/i4b_ihfc_drv.c
 stable/7/sys/i4b/layer1/isic/i4b_bchan.c
 stable/7/sys/i4b/layer1/itjc/i4b_itjc_pci.c
 stable/7/sys/i4b/layer1/iwic/i4b_iwic_bchan.c
 stable/7/sys/i4b/layer4/i4b_i4bdrv.c

Note that there is only yeterday's hardware in this list.

The queue length should be per-interface and configured only by a sysctl,
or better, drivers dynamically configure it to a good value.

Bruce
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to