From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgw.gov.kz (mgw.gov.kz [89.218.88.242]) by dpdk.org (Postfix) with ESMTP id 2B4A62E8B for ; Wed, 3 Sep 2014 08:01:36 +0200 (CEST) Received: from mgw.gov.kz (mx.ctsat.kz [178.89.4.95]) by mgw.gov.kz with ESMTP id s8366ABf029947-s8366ABg029947 for ; Wed, 3 Sep 2014 12:06:11 +0600 Received: from EXCASHUB1.rgp.local (192.168.40.51) by EdgeForefront.rgp.local (192.168.40.59) with Microsoft SMTP Server (TLS) id 14.2.247.3; Wed, 3 Sep 2014 12:05:06 +0600 Received: from r220.rgp.local (192.168.59.10) by excashub1.rgp.local (192.168.40.48) with Microsoft SMTP Server (TLS) id 14.2.247.3; Wed, 3 Sep 2014 12:10:08 +0600 From: Yerden Zhumabekov To: Date: Wed, 3 Sep 2014 12:05:49 +0600 Message-ID: <1409724351-23786-1-git-send-email-e_zhumabekov@sts.kz> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.168.59.10] X-FEAS-SYSTEM-WL: e_zhumabekov@sts.kz Subject: [dpdk-dev] [PATCH 0/2] rewritten rte_hash_crc() call X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Sep 2014 06:01:37 -0000 As SSE4.2 provides CRC32 instructions with either 32 and 64 bit operands, new rte_hash_crc_8byte() call assisted with _mm_crc32_u64 intrinsic may be useful. Then, rte_hash_crc() function is redesigned to take advantage of both 32 and 64 bit operands. This improves the function's performance significantly. Results of my test run on a single CPU core are below. CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz Number of iterations/chunks: 52428800 Chunk size: 24 rte_hash_crc: 0.379 sec, hash: 0x14c64e11 rte_hash_crc_new: 0.253 sec, hash: 0x14c64e11 Chunk size: 25 rte_hash_crc: 0.442 sec, hash: 0xa9afc779 rte_hash_crc_new: 0.316 sec, hash: 0xa9afc779 Chunk size: 26 rte_hash_crc: 0.442 sec, hash: 0x92f2284b rte_hash_crc_new: 0.316 sec, hash: 0x92f2284b Chunk size: 27 rte_hash_crc: 0.442 sec, hash: 0x7c4655ff rte_hash_crc_new: 0.316 sec, hash: 0x7c4655ff Chunk size: 28 rte_hash_crc: 0.442 sec, hash: 0xf577c6b4 rte_hash_crc_new: 0.316 sec, hash: 0xf577c6b4 Chunk size: 29 rte_hash_crc: 0.505 sec, hash: 0x6e18ba55 rte_hash_crc_new: 0.337 sec, hash: 0x6e18ba55 Chunk size: 30 rte_hash_crc: 0.505 sec, hash: 0x35f07dbb rte_hash_crc_new: 0.337 sec, hash: 0x35f07dbb Chunk size: 31 rte_hash_crc: 0.505 sec, hash: 0x1bf2ee8c rte_hash_crc_new: 0.337 sec, hash: 0x1bf2ee8c Yerden Zhumabekov (2): hash: add new rte_hash_crc_8byte call hash: rte_hash_crc uses 8- and 4-byte CRC32 intrinsics lib/librte_hash/rte_hash_crc.h | 47 +++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 8 deletions(-) -- 1.7.9.5