[ovs-dev] [PATCH 2/2] miniflow: Use 64-bit data.
Ben Pfaff
blp at nicira.com
Tue Jan 6 21:20:41 UTC 2015
On Tue, Jan 06, 2015 at 11:03:15AM -0800, Jarno Rajahalme wrote:
>
> On Jan 5, 2015, at 2:39 PM, Ben Pfaff <blp at nicira.com> wrote:
>
> > On Mon, Jan 05, 2015 at 02:15:13PM -0800, Ben Pfaff wrote:
> >> On Mon, Jan 05, 2015 at 02:08:41PM -0800, Jarno Rajahalme wrote:
> >>>
> >>> On Dec 29, 2014, at 2:27 PM, Ben Pfaff <blp at nicira.com> wrote:
> >>>
> >>>> On Wed, Dec 17, 2014 at 10:30:42AM -0800, Jarno Rajahalme wrote:
> >>>>> So far the compressed flow data in struct miniflow has been in 32-bit
> >>>>> words with a 63-bit map, allowing for a maximum size of struct flow of
> >>>>> 252 bytes. With the forthcoming Geneve options this is not sufficient
> >>>>> any more.
> >>>>>
> >>>>> This patch solves the problem by changing the miniflow data to 64-bit
> >>>>> words, doubling the flow max size to 504 bytes. Since the word size
> >>>>> is doubled, there is some loss in compression efficiency. To counter
> >>>>> this some of the flow fields have been reordered to keep related
> >>>>> fields together (e.g., the source and destination IP addresses share
> >>>>> the same 64-bit word).
> >>>>>
> >>>>> This change should speed up flow data processing on 64-bit CPUs, which
> >>>>> may help counterbalance the impact of making the struct flow bigger in
> >>>>> the future.
> >>>>>
> >>>>> Classifier lookup stage boundaries are also changed to 64-bit
> >>>>> alignment, as the current algorithm depends on each miniflow word to
> >>>>> not be split between ranges. This has resulted in new padding (part
> >>>>> of the 'mpls_lse' field).
> >>>>>
> >>>>> The 'dp_hash' field is also moved to packet metadata to eliminate
> >>>>> otherwise needed padding there. This allows the L4 to fit into one
> >>>>> 64-bit word, and also makes matches on 'dp_hash' more efficient as
> >>>>> misses can be found already on stage 1.
> >>>>>
> >>>>> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> >>>
> >>>> This seems mostly straightforward. Are there particular parts you'd
> >>>> like me to look over carefully?
> >>>>
> >>>
> >>> Maybe the changes to the miniflow push macros, which get a bit more
> >>> complicated...
> >>
> >> OK, I'll do that in a bit.
> >
> > I read them through them. I didn't spot any bugs, although they're
> > somewhat tricky.
>
> Is this an Acked-by then?
Acked-by: Ben Pfaff <blp at nicira.com>
More information about the dev
mailing list