[ovs-dev] [PATCH v10 0/5] dpcls func ptrs & optimizations

Ilya Maximets i.maximets at samsung.com
Thu Jul 11 14:13:43 UTC 2019


On 09.07.2019 15:34, Harry van Haaren wrote:
> Hey All,
> 
> 
> Here a v10 of the DPCLS Function Pointer patchset, as has been
> presented at OVS Conf in Nov '18, and discussed on the ML since then.
> I'm aware of the soft-freeze for 2.12, I feel this patchset has had
> enough reviews/versions/testing to be merged in 2.12.
> 
> Thanks Ilya and Ian for review comments on v9, they should all be addressed
> in this v10. 
> 
> Thanks Malvika Gupta for testing (Tested-by tag added to patches) and also
> for reporting ARM performance gains, see here for details:
> https://mail.openvswitch.org/pipermail/ovs-dev/2019-June/360088.html
> 
> 
> Regards, -Harry

Hi, Harry.
Thanks for working on this.

I performed some tests with this version in my usual PVP with bonded PHY
setup and here are some observations:

* Bug that redirected packets to wrong rules is gone. At least I can't
  catch it in my testing anymore. Assuming it's fixed now.

* dpcls performance boost for 512B packets is around 12% in compare with
  current master.

Few remarks about the test scenario:
All packets mostly goes through the NORMAL action with vlan push/pop.
Packets that goes from VM to balanced-tcp bonded PHY goes through
recirculation. Datapath flows for them looks like this:

Before recirculation:
recirc_id=0,eth,ip,vlan_tci=0x0000/0x1fff,dl_src=aa:16:3e:24:30:dd,dl_dst=aa:bb:cc:dd:ee:11,nw_frag=no

After recirculation:
recirc_id=0x1,dp_hash=0xf5/0xff,eth,ip,dl_vlan=42,dl_vlan_pcp=0,nw_frag=no

I have 256 flows in datapath for different 'dp_hash'es.

So, even if the number of ipv4 flows is as high as 256K, I have about ~270 datapath
flows in dpcls. (This gives a huge advantage to dpcls over EMC and SMC).

All the flows fits into 5+1 case, i.e. optimized function 
dpcls_subtable_lookup_mf_u0w5_u1w1 used.

Most interesting observation:

* New version of dpcls lookup outperforms SMC in this setup even on
  relatively small number of flows. With 8K flows dpcls faster than SMC
  by 1.5% and by 5.7% with 256K flows.
  Of course, SMC is 10% faster than dpcls with 8 flows, but it's not very
  interesting because no-one can beat EMC in this area.

I'd like to read the code more carefully tomorrow and probably give some
more feedback.

Best regards, Ilya Maximets.


More information about the dev mailing list