svn commit: r215368 - in stable/7/sys: arm/at91
arm/xscale/ixp425
contrib/dev/oltr dev/ae dev/an dev/ar dev/arl dev/ath dev/awi dev/ce dev/cm
dev/cnw dev/cp dev/cs dev/ctau dev/cx dev/cxgb dev/ed d...
Bruce Evans
brde at optusnet.com.au
Tue Nov 16 16:12:29 UTC 2010
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
More information about the svn-src-all
mailing list