Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Sep 2017 20:23:43 +0000
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        "Stephen Hurd" <shurd@sasktel.net>
Cc:        "Stephen Hurd" <shurd@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r323942 - head/sys/net
Message-ID:  <681F1B2B-1CF6-41AC-9EED-B4790AB7CE95@lists.zabbadoz.net>
In-Reply-To: <61486844-e6f1-2607-2113-599ebcb02c58@sasktel.net>
References:  <201709230135.v8N1ZE6S063264@repo.freebsd.org> <B28D9879-4ECF-43E4-9A58-51F616CEC4BE@lists.zabbadoz.net> <283397c7-a01e-3776-7ed3-b64d68003d0b@sasktel.net> <6F5DC92C-2CF6-4A33-9663-BFECB7DB65F2@lists.zabbadoz.net> <89d68ff8-84ed-83a6-4e77-9a321babe2fe@sasktel.net> <4523452E-79B0-494A-B44F-44DE4B747D69@lists.zabbadoz.net> <61486844-e6f1-2607-2113-599ebcb02c58@sasktel.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 25 Sep 2017, at 17:04, Stephen Hurd wrote:

> Bjoern A. Zeeb wrote:
>> On 23 Sep 2017, at 23:46, Stephen Hurd wrote:
>>
>>> Bjoern A. Zeeb wrote:
>>>> On 23 Sep 2017, at 6:32, Stephen Hurd wrote:
>>>>
>>>>> Bjoern A. Zeeb wrote:
>>>>>> On 23 Sep 2017, at 1:35, Stephen Hurd wrote:
>>>>>>
>>>>>>> Author: shurd
>>>>>>> Date: Sat Sep 23 01:35:14 2017
>>>>>>> New Revision: 323942
>>>>>>> URL: https://svnweb.freebsd.org/changeset/base/323942
>>>>>>>
>>>>>>> Log:
>>>>>>>    Chain mbufs before passing to if_input()
>>>>>>>
>>>>>>>    Build a list of mbufs to pass to if_input() after LRO. 
>>>>>>> Results in
>>>>>>>    12% small packet forwarding rate improvement.

>> I not saying anything against the change, I am just saying the commit 
>> message doesn’t describe what it does.
>
> Can you explain what was confusing about it or propose other wording?  
> I'm not sure what was confusing, and I'd like to avoid similarly 
> confusing messages in the future.

I think it’s because I read “after LRO” as “after LRO processing 
happened” which is exactly not what is happening in that case;  I know 
logically in the code order it’s “after LRO”.

If I understand the change correctly (and I think jtl summarised it 
quite well already as well):

“In cases when LRO is disabled or LRO is not consuming the packet,
try to build an mbuf chain and pass the chain to if_input() thus 
lowering the per-packet overheads (*).
For a packet forwarding case we have seen a 12% rate improvement for 
small packets.”

(*) would be nice to describe them at this point so people understand 
where 12% come from (e.g., function call overhead, locking overhead, 
whatever ..) because that’s the reason you are doing the change.


>> Also I am pretty sure this works with ether_input but not so much 
>> with fddi_input, iso88025_input, and ifdead_input is probably going 
>> to leak as well.
>
> Thanks for the heads up.  They all seem to use m_freem(), so they 
> shouldn't leak.

Right.  My bad.

> It doesn't look like they would actually work though (except 
> ifdead_input of course).

Well, they’d work with a bit of packet loss I guess ;-)

/bz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?681F1B2B-1CF6-41AC-9EED-B4790AB7CE95>