RFC: TSO patch for current
Pyun YongHyeon
pyunyh at gmail.com
Mon Sep 4 08:00:16 UTC 2006
On Fri, Sep 01, 2006 at 03:51:21PM -0700, Jack Vogel wrote:
> This is a patch for the stack and the em driver to enable TSO
> on CURRENT. Previously I had problems getting it to work, but
> this is functional.
>
> I should note that CURRENT is being a pain right now, when
> I comment out em in the config the kernel panics coming up,
> so I had to substitute this code into the tree. Rather bizarre :)
>
> I have this functionality running on a 6.1 based system, and
> our test group is already testing against that driver, so far
> things are looking good.
>
> I have designed it so the driver can continue to be built
> without support. There is also a sysctl in the stack code
> so you can set net.inet.tcp.tso_enable on or off and
> compare.
>
> I know there may be some refinements to add in, but I
> would like to get this into CURRENT as a start.
>
> Comments?
>
It seems that 8254x also supports UDP segmentation offloading
feature. Have you tried to implement it?
According to the data sheet checksums are not accurate above 12K
frame size but I couldn't find frame size restrictions in TSO path.
What is maximum frame size supported by TSO?
It seems that TSO assumes IP/TCP/UDP checksum offloading is always
enabled by hardware. What if users disable IP/TCP/UDP checksum
offloading with ifconfig(8)? What happen if users disable hardware
VLAN tag insertion with ifconfig(8)?
It woud be even better if users can disable/enable TSO capability
for each network devices with ifconfig(8) instead of relying on
global sysctl MIB(net.inet.tcp.tso_enable).
Btw, do you have benchmark numbers?
> Jack
--
Regards,
Pyun YongHyeon
More information about the freebsd-net
mailing list