[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