Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Sep 2006 16:42:25 +0200
From:      Andre Oppermann <andre@freebsd.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Ian FREISLICH <if@hetzner.co.za>, freebsd-current@freebsd.org, Gleb Smirnoff <glebius@freebsd.org>, Jack Vogel <jfvogel@gmail.com>, Mike Tancsa <mike@sentex.net>
Subject:   Re: TSO, SMP and the em driver.
Message-ID:  <450ABBD1.4020609@freebsd.org>
In-Reply-To: <200609151014.36785.jhb@freebsd.org>
References:  <E1GN5FA-00085C-CJ@hetzner.co.za>	<20060915102228.GK27667@FreeBSD.org> <450A8467.5050405@freebsd.org> <200609151014.36785.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
> On Friday 15 September 2006 06:45, Andre Oppermann wrote:
> 
>>Gleb Smirnoff wrote:
>>
>>>On Wed, Sep 13, 2006 at 10:46:22AM -0500, Brooks Davis wrote:
>>>B> On Wed, Sep 13, 2006 at 11:08:44AM -0400, John Baldwin wrote:
>>>B> > On Tuesday 12 September 2006 19:14, Andre Oppermann wrote:
>>>B> > > Mike Tancsa wrote:
>>>B> > > > At 12:43 PM 9/12/2006, Andre Oppermann wrote:
>>>B> > > > 
>>>B> > > >> TSO != (vlan && promisc)
>>>B> > > > 
>>>B> > > > Sorry, the commonality I was referring to was VLAN hardware tagging and 
>>>B> > > > how it must be enabled for TSO, but that breaks other things.  See a few 
>>>B> > > > messages ago
>>>B> > > > 
>>>B> > http://lists.freebsd.org/pipermail/freebsd-current/2006-September/065818.html 
>>>B> > > 
>>>B> > > I'm sure we can find a workaround for that.
>>>B> > 
>>>B> > Well, you could have the em(4) driver manually handle TSO in software, which 
>>>B> > is what it does to workaround the VLAN tag problem.  (It does VLAN 
>>>B> > encapsulation in the driver.)  While VLAN insertion may be trivial, 
>>>B> > re-implementing TCP segmentation in the driver might be a good bit less 
>>>B> > trivial to do.  There's not going to be a simple easy workaround for this 
>>>B> > hardware bug. :(
>>>B> 
>>>B> I'm not sure it's worth worrying about with GbE hardware.  Just disable
>>>B> TSO in promiscuous mode.  Where TSO is going to really matter is 10GbE.
>>>B> No supporting TSO in some configurations with GbE doesn't seem like a
>>>B> big deal to me.
>>>
>>>Yes, makeing TSO and promisc mutually exclusive would be fine.
>>
>>There is no point in disabling TSO in when the card is in promisc mode.
>>Promisc mode only affects the receive path where TSO doesn't do a thing,
>>it is only used on the send path.
> 
> 
> The real fix is that the network stack including bpf(4) needs to be aware
> of VLANs that aren't stored in the packet data (mtag, mbuf header,
> wherever).  If you fixed bridging and bpf to recoginize VLAN IDs in metadata
> and handle them then em(4) wouldn't need this hack.  Also, if my understanding
> is correct, this hack is really needed for _any_ ethernet driver that supports
> vlan tagging in hardware unless we fix the stack consumers.

OK, I'll give it a try to fix the stack.

-- 
Andre



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?450ABBD1.4020609>