Some performance measurements on the FreeBSD network stack

K. Macy kmacy at freebsd.org
Tue Apr 24 15:05:31 UTC 2012


On Tue, Apr 24, 2012 at 5:03 PM, K. Macy <kmacy at freebsd.org> wrote:
> On Tue, Apr 24, 2012 at 4:16 PM, Li, Qing <qing.li at bluecoat.com> wrote:
>>>
>> >From previous tests, the difference between flowtable and
>>>routing table was small with a single process (about 5% or 50ns
>>>in the total packet processing time, if i remember well),
>>>but there was a large gain with multiple concurrent processes.
>>>
>>
>> Yes, that sounds about right when we did the tests a long while ago.
>>
>>>
>>> Removing flowtable increases the cost in ip_output()
>>> (obviously) but also in ether_output() (because the
>>> route does not have a lle entry so you need to call
>>> arpresolve on each packet).
>>>
>>
>> Yup.
>>
>>>
>>> So in revising the route lookup i believe it would be good
>>> if we could also get at once most of the info that
>>> ether_output() is computing again and again.
>>>
>>
>> Well, the routing table no longer maintains any lle info, so there
>> isn't much to copy out the rtentry at the completion of route
>> lookup.
>>
>> If I understood you correctly, you do believe there is a lot of value
>> in Flowtable caching concept, but you are not suggesting we reverting
>> back to having the routing table maintain L2 entries, are you ?
>>
>
>
> One could try a similar conversion of the L2 table to an rmlock
> without copy while lock is held.

Odd .. *with* copy while lock is held.

-Kip


More information about the freebsd-net mailing list