svn commit: r323942 - head/sys/net

Bjoern A. Zeeb bzeeb-lists at lists.zabbadoz.net
Mon Sep 25 11:11:03 UTC 2017


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.
>>>> forwarding seems a confusing word here..
>>>
>>> The test was small (64 byte frames) received on one interface, then 
>>> sent out on a different one using the net.inet.ip.forwarding sysctl 
>>> (controlled via the gateway_enable setting in rc.conf).
>>
>> Then this makes no sense as we don’t do LRO if forwarding is 
>> enabled on the machine;
>> https://svnweb.freebsd.org/base/head/sys/netinet/tcp_lro.c?annotate=317390#l645
>
> Basically, it changed from this:
..
> To this:
…
> So while before it called if_input() for each separate mbuf that was 
> not LROed, it now builds a chain of mbufs that were not LROed, and 
> makes a single call to if_input() with the whole chain.  For cases 
> like packet forwarding where no packets are LROed, performance is 
> better.

Got it, so the “after LRO” in the original commit message is as 
confusing as forwarding.

I not saying anything against the change, I am just saying the commit 
message doesn’t describe what it does.

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.


/bz


More information about the svn-src-all mailing list