Hello everyone,
On 02/07/2019 19:43, Ian Stokes wrote:
On 7/2/2019 6:00 PM, Ben Pfaff wrote:
Hi Ilya and Ian. Please allow me to introduce Michal Orsak, a grad
student currently looking at packet classifiers. He's implemented a
novel classifier that is faster than the one already in OVS in the
benchmarks that he's run. His classifier is tree-based, like most
high-performance classifiers, but also incremental so that flows can be
inserted and deleted individually without undue delay. Ultimately, it
might make sense to replace the OVS userspace datapath classifier by one
based on the concepts that he's come up with.
Thanks for the introduction Ben. I wasn't aware of Michals work. The
timing is quite apt as currently I've been looking at Harrys (CCd)
approach to improving performance for the current DPCLS.
https://mail.openvswitch.org/pipermail/ovs-dev/2019-May/358790.html
I was hoping to have this approach in place for OVS 2.12 as there's
been ongoing testing/reviews across the community with general
improvements of ~ 15% or more for both x86 and ARM architectures which
looks promising.
I'd be interested in seeing Michals proposals if there are patches
available that would be great.
Now I am implementing the DPCLS API so we can test the thing. There are
also some differences and problems like:
* support for priority of the rules
* only single matching rule
* c++
* my limited knowledge of DPCLS
A difficulty with classifiers, however, is coming up with an appropriate
set of benchmarks to compare them fairly. The userspace datapath
focuses on performance, so do you have a set of benchmarks that you
recommend for comparison? Are there other criteria that would be
important (besides correctness)?
Agreed, that's something we've been looking for feedback on from the
community to date. Most testing we have seen have been performance
focused.
There are so many corner cases... Any test is appreciated.
The areas I think that would be good to measure would be flow
addition/flow deletion overhead in CPU cycles. Also memory and time
complexity comparisons for existing and proposed techniques might be
nice to see.
Currently I do have comparison with OVS TSS, DPDK librte_acl,
PartitionSort, HyperSplit, HyperCuts and few others. (C based
benchmarks. Some of them not optimized implementations. Originally for
devel. of hardware based classifier.). All previously mentioned except
TSS do have worst case complexities from the same class. However it is
more complicated as it depends on size of the matching field and other
factors which have different meanings between algs. I do not have
understandable and short definitions yet.
Thanks
Ian
(I'd take answers from anyone, not just Ian and Ilya!)
Thanks,
Ben.
Thanks,
Michal
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev