[ovs-dev] [PATCH 07/12] dpif-netdev: Cache align netdev_flow_keys.

Daniele Di Proietto diproiettod at ovn.org
Fri Oct 7 22:45:47 UTC 2016


2016-10-07 14:10 GMT-07:00 Jarno Rajahalme <jarno at ovn.org>:

>
> > On Oct 7, 2016, at 9:17 AM, Bhanuprakash Bodireddy <
> bhanuprakash.bodireddy at intel.com> wrote:
> >
> > Aligning the 'keys' array seems to positively impact performance.
> >
> > Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy at intel.com>
> > Signed-off-by: Antonio Fischetti <antonio.fischetti at intel.com>
> > ---
> > lib/dpif-netdev.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> > index d0bb191..dfc9cbd 100644
> > --- a/lib/dpif-netdev.c
> > +++ b/lib/dpif-netdev.c
> > @@ -4157,7 +4157,7 @@ dp_netdev_input__(struct dp_netdev_pmd_thread *pmd,
> >     /* Sparse or MSVC doesn't like variable length array. */
> >     enum { PKT_ARRAY_SIZE = NETDEV_MAX_BURST };
> > #endif
> > -    struct netdev_flow_key keys[PKT_ARRAY_SIZE];
> > +    struct netdev_flow_key keys[PKT_ARRAY_SIZE]
> __attribute__((aligned(64)));
>
> Due to compiler compatibility you must use OVS_ALIGNED_VAR(64) instead.
>

I would also use the CACHE_LINE_SIZE define, instead of 64

Thanks,

Daniele


> >     struct packet_batch_per_flow batches[PKT_ARRAY_SIZE];
> >     long long now = time_msec();
> >     size_t newcnt, n_batches, i;
> > --
> > 2.4.11
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list