[ovs-dev] [PATCH] RFC: Pass more packet and flow key info to userspace.

Jesse Gross jesse at nicira.com
Thu Jan 24 17:41:23 UTC 2013


On Thu, Jan 24, 2013 at 7:34 AM, Jarno Rajahalme
<jarno.rajahalme at nsn.com> wrote:
>
> On Jan 23, 2013, at 19:30 , ext Jesse Gross wrote:
>
>> On Tue, Jan 22, 2013 at 9:48 PM, Jarno Rajahalme
>> <jarno.rajahalme at nsn.com> wrote:
>>> Add OVS_PACKET_ATTR_KEY_INFO to relieve userspace from re-computing
>>> data already computed within the kernel datapath.  In the typical
>>> case of an upcall with perfect key fitness between kernel and
>>> userspace this eliminates flow_extract() and flow_hash() calls in
>>> handle_miss_upcalls().
>>>
>>> Additional bookkeeping within the kernel datapath is minimal.
>>> Kernel flow insertion also saves one flow key hash computation.
>>>
>>> Removed setting the packet's l7 pointer for ICMP packets, as this was
>>> never used.
>>>
>>> Signed-off-by: Jarno Rajahalme <jarno.rajahalme at nsn.com>
>>> ---
>>>
>>> This likely requires some discussion, but it took a while for me to
>>> understand why each packet miss upcall would require flow_extract()
>>> right after the flow key has been obtained from odp attributes.
>>
>> Do you have any performance numbers to share?  Since this is an
>> optimization it's important to understand if the benefit is worth the
>> extra complexity.
>
> Not yet, but would be happy to. Any hits towards for the best way of obtaining
> meaningful numbers for something like this?

This is a flow setup optimization, so usually something like netperf
TCP_CRR would be a good way to stress that.

However, Ben mentioned to me that he had tried eliminating the
flow_extract() call from userspace in the past and the results were
disappointing.



More information about the dev mailing list