[dpdk-dev] [PATCH] examples/ip_pipeline: use crc32 in hash functions for arm64

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Tue Jul 4 01:19:34 CEST 2017



> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas at monjalon.net]
> Sent: Monday, July 3, 2017 10:12 PM
> To: Jianbo Liu <jianbo.liu at linaro.org>; Dumitrescu, Cristian
> <cristian.dumitrescu at intel.com>
> Cc: dev at dpdk.org; jerin.jacob at caviumnetworks.com;
> ashwin.sekhar at caviumnetworks.com
> Subject: Re: [dpdk-dev] [PATCH] examples/ip_pipeline: use crc32 in hash
> functions for arm64
> 
> 18/05/2017 11:09, Jianbo Liu:
> > Implement the same hash functions with crc32 on arm platform.
> >
> > Signed-off-by: Jianbo Liu <jianbo.liu at linaro.org>
> > ---
> >  examples/ip_pipeline/pipeline/hash_func.h       |   2 +
> >  examples/ip_pipeline/pipeline/hash_func_arm64.h | 245
> ++++++++++++++++++++++++
> >  2 files changed, 247 insertions(+)
> >  create mode 100644 examples/ip_pipeline/pipeline/hash_func_arm64.h
> 
> I don't understand why this code is in an example.
> We have some CRC code in librte_hash, librte_net and ip_pipeline.
> Cristian, Jianbo,
> does it make sense to move these functions somewhere else?
> 

I think example apps are a great way to propose new hash functions. IMO we should encourage the
definition/exploration of new hash functions in our example apps.

These functions are examples of how fast hash functions can be built using special CPU instructions.
They have much better performance than e.g. jhash, but their properties are largely unknown, as no
rigorous study on their properties (such as uniform distribution) has been conducted. I have seen them
providing good performance  for the data set I have been using, but I have no extensive data to support
their maturity level.

If somebody is willing to invest the effort in proving them, I would be more than happy to see them
moved to a library like librte_hash. Pablo as maintainer has the choice (I think it is not the first time we
discuss bout these hash funcs :) )

As mentioned in one of our deprecation notices, I am actively working (not ready for 17.8 unfortunately)
to add a key mask parameter to these functions, so more work on these hash functions is likely to take place.


More information about the dev mailing list