> -----Original Message----- > From: Tony Lu [mailto:zlu at ezchip.com] > Sent: Friday, July 17, 2015 4:35 AM > To: De Lara Guarch, Pablo; dev at dpdk.org > Subject: RE: [dpdk-dev] [PATCH v7 1/7] hash: replace existing hash library > with cuckoo hash implementation > > Hi, Pablo > > >-----Original Message----- > >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch at intel.com] > >Sent: Friday, July 17, 2015 4:42 AM > >To: Tony Lu; dev at dpdk.org > >Subject: RE: [dpdk-dev] [PATCH v7 1/7] hash: replace existing hash library > with > >cuckoo hash implementation > > > >Hi Tony, > > > >> -----Original Message----- > >> From: Tony Lu [mailto:zlu at ezchip.com] > >> Sent: Thursday, July 16, 2015 10:40 AM > >> To: De Lara Guarch, Pablo; dev at dpdk.org > >> Subject: RE: [dpdk-dev] [PATCH v7 1/7] hash: replace existing hash > >> library with cuckoo hash implementation > >> > >> >diff --git a/lib/librte_hash/rte_cuckoo_hash.c > >> b/lib/librte_hash/rte_cuckoo_hash.c > >> >new file mode 100644 > >> >index 0000000..50e3acd > >> >--- /dev/null > >> >+++ b/lib/librte_hash/rte_cuckoo_hash.c > >> >@@ -0,0 +1,1027 @@ > >> ... > >> >+ > >> >+/* Functions to compare multiple of 16 byte keys (up to 128 bytes) > >> >+*/ static int rte_hash_k16_cmp_eq(const void *key1, const void > >> >+*key2, size_t key_len > >> >__rte_unused) > >> >+{ > >> >+ const __m128i k1 = _mm_loadu_si128((const __m128i *) key1); > >> >+ const __m128i k2 = _mm_loadu_si128((const __m128i *) key2); > >> >+ const __m128i x = _mm_xor_si128(k1, k2); > >> >+ > >> >+ return !_mm_test_all_zeros(x, x); > >> >+} > >> ... > >> > >> When compiling the latest dev DPDK for non-x86 arch, it fails on the > >> above code, as the SSE is x86 specific defined in <emmintrin.h>. Is > >> it possible to replace this function with platform independent code? > > > >Thanks for spotting this. I just sent a patch that should fix the problem. > >Can you check if it works? > > Thanks for your quick response, but __m128i and all the _mm_ related > functions > are X86 specific defined in <emmintrin.h>. This header file is only > available in X86 > compiler library, but no-X86 archs do not have this file. So if we can > replace all > the X86 specific code in the above function, that would be great. > With the patch that I sent, if you are compiling for a non-x86 arch, you should not have any problem, since all that code will only be used if using x86 arch. Have you tried compiling DPDK with the patch?
Pablo > Thanks > -Tony > > > >Thanks, > >Pablo > >> > >> Thanks > >> -Zhigang Lu >