Date: Thu, 3 Jun 2010 10:20:38 -0700 From: Pyun YongHyeon <pyunyh@gmail.com> To: Krzysztof Dajka <alteriks@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: Is enabling jumbo frames on RTL8111C possible? Message-ID: <20100603172037.GA13502@michelle.cdnetworks.com> In-Reply-To: <AANLkTikOwX2gT_4NS5HNhLu7Vlw0wl6nmtzGmDHZ_Su6@mail.gmail.com> References: <AANLkTikOwX2gT_4NS5HNhLu7Vlw0wl6nmtzGmDHZ_Su6@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 03, 2010 at 02:24:38PM +0200, Krzysztof Dajka wrote: > Hi, > > I'm trying to enable jumbo frames on my re0 NIC. I tried: > # ifconfig re0 mtu 1600 > ifconfig: ioctl (set mtu): Invalid argument > > I have found in /usr/src/sys/dev/re/if_re.c > /* > * These controllers support jumbo frame but it seems > * that enabling it requires touching additional magic > * registers. Depending on MAC revisions some > * controllers need to disable checksum offload. So > * disable jumbo frame until I have better idea what > * it really requires to make it support. > * RTL8168C/CP : supports up to 6KB jumbo frame. > * RTL8111C/CP : supports up to 9KB jumbo frame. > */ > > pciconf -lv shows: > re0@pci0:2:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x02 > hdr=0x00 > vendor = 'Realtek Semiconductor' > device = 'Gigabit Ethernet NIC(NDIS 6.0) (RTL8168/8111/8111c)' > class = network > subclass = ethernet > > Do I need to set some quirks in boot process to enable jumbo frames, or it > cannot be done because it's not implemented in the driver. > I tried setting larger mtu than 1500 on Debian Squeeze and it worked well, > so definitely my chip supports jumbo frames RealTek no longer releases datasheet so it's hard to know required information to support jumbo frame. It seems driver released by vendor has magic code which enables jumbo frame as well as DSP fixups. The magic code is very complex and hard to understand the meaning. It seems Linux borrowed the magic code from vendor but I guess they also don't know what the magic code does and why the magic is needed. Controllers targeted to servers show very good performance number with jumbo frame(e.g. about 990Mbps for bulk TCP transfers) but I'm not sure how well consumer controller works with jumbo frame. Vendor driver disables checksum offloading when jumbo frame is used. This indicates the controller has very small FIFO(less than 1 jumbo frame size) which in turn means it may show poor performance under load.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100603172037.GA13502>