From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tony Lu Subject: Re: [PATCH v7 1/7] hash: replace existing hash library with cuckoo hash implementation Date: Fri, 17 Jul 2015 11:34:38 +0800 Message-ID: <001c01d0c041$98b01c30$ca105490$@com> References: <1436571020-16252-1-git-send-email-pablo.de.lara.guarch@intel.com> <1436573936-15956-1-git-send-email-pablo.de.lara.guarch@intel.com> <1436573936-15956-2-git-send-email-pablo.de.lara.guarch@intel.com> <001601d0bfab$6c4071e0$44c155a0$@com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: "'De Lara Guarch, Pablo'" , Return-path: Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0058.outbound.protection.outlook.com [157.56.112.58]) by dpdk.org (Postfix) with ESMTP id 6E4A55A76 for ; Fri, 17 Jul 2015 05:35:14 +0200 (CEST) In-Reply-To: Content-Language: zh-cn List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, Pablo >-----Original Message----- >From: De Lara Guarch, Pablo [mailto:pablo.de.lara.guarch@intel.com] >Sent: Friday, July 17, 2015 4:42 AM >To: Tony Lu; dev@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@ezchip.com] >> Sent: Thursday, July 16, 2015 10:40 AM >> To: De Lara Guarch, Pablo; dev@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 . 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 . 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. Thanks -Tony >Thanks, >Pablo >> >> Thanks >> -Zhigang Lu