Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-20 Thread Joe Stringer
On 21 July 2014 10:28, Joe Stringer wrote: > On 19 July 2014 06:13, Jesse Gross wrote: > >> It's true, the field ordering is not significant if you understand all >> of the fields. The concern is that userspace may want to keep track of >> flows even if it doesn't understand all of the fields (f

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-20 Thread Joe Stringer
On 19 July 2014 06:13, Jesse Gross wrote: > It's true, the field ordering is not significant if you understand all > of the fields. The concern is that userspace may want to keep track of > flows even if it doesn't understand all of the fields (for example, it > can determine that the kernel prov

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-18 Thread Jesse Gross
On Thu, Jul 17, 2014 at 3:53 PM, Joe Stringer wrote: > On 18 July 2014 05:19, Ben Pfaff wrote: >> - If the userspace flow key includes more fields than the >> > kernel's, for example if userspace decoded an IPv6 header but >> > the kernel stopped at the Ethernet type, then userspa

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-17 Thread Joe Stringer
On 18 July 2014 10:53, Joe Stringer wrote: > Basically I'd be much more comfortable with the kernel generating its >> own flow key the first time it dumps a flow, then caching that. How >> much overhead does that have versus caching the userspace-provided >> flow key? >> > > By the same metric,

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-17 Thread Joe Stringer
On 18 July 2014 05:19, Ben Pfaff wrote: > > > From datapath/README: > > > > - If the kernel's flow key includes more fields than the userspace > > version of the flow key, for example if the kernel decoded IPv6 > > headers but userspace stopped at the Ethernet type (because it > >

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-17 Thread Ben Pfaff
On Thu, Jul 17, 2014 at 11:04:55AM +1200, Joe Stringer wrote: > On 17 July 2014 04:48, Ben Pfaff wrote: > > > On Wed, Jul 16, 2014 at 02:50:12PM +1200, Joe Stringer wrote: > > > Converting the flow key and mask back into netlink format during flow > > > dump is fairly expensive. By caching the us

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-16 Thread Joe Stringer
On 17 July 2014 04:48, Ben Pfaff wrote: > On Wed, Jul 16, 2014 at 02:50:12PM +1200, Joe Stringer wrote: > > Converting the flow key and mask back into netlink format during flow > > dump is fairly expensive. By caching the userspace-provided versions of > > these during flow setup, and copying th

Re: [ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-16 Thread Ben Pfaff
On Wed, Jul 16, 2014 at 02:50:12PM +1200, Joe Stringer wrote: > Converting the flow key and mask back into netlink format during flow > dump is fairly expensive. By caching the userspace-provided versions of > these during flow setup, and copying the memory directly during flow > dump, we are able

[ovs-dev] [PATCHv3] datapath: Cache netlink flow key, mask on flow_put.

2014-07-15 Thread Joe Stringer
Converting the flow key and mask back into netlink format during flow dump is fairly expensive. By caching the userspace-provided versions of these during flow setup, and copying the memory directly during flow dump, we are able to support up to 33% more flows in the datapath. Previous top-5 perf