From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 60EC5A057C; Thu, 26 Mar 2020 17:47:39 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3532B1C030; Thu, 26 Mar 2020 17:47:33 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 925C62C15 for ; Thu, 26 Mar 2020 17:47:28 +0100 (CET) IronPort-SDR: PZJOywX5F7mcunQdCWbtBe1zL8nnII7IgM4mwRn8pKptRSRD5JqOPqAjMV/4EyKXeUn7+8wJDN f4ji/wC5rtOw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Mar 2020 09:47:28 -0700 IronPort-SDR: DJzASh/ertZ+pdxBL0bIuJz1qwnFQM7urOVMFVJw0fpDS8guGDYWdoiA+CSA113VkXgypNzoLT HGr3akqmwliA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,309,1580803200"; d="scan'208";a="447076234" Received: from silpixa00400072.ir.intel.com ([10.237.222.213]) by fmsmga005.fm.intel.com with ESMTP; 26 Mar 2020 09:47:26 -0700 From: Vladimir Medvedkin To: dev@dpdk.org Cc: yipeng1.wang@intel.com, sameh.gobriel@intel.com, bruce.richardson@intel.com Date: Thu, 26 Mar 2020 16:47:23 +0000 Message-Id: <1585241243-339118-2-git-send-email-vladimir.medvedkin@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1585241243-339118-1-git-send-email-vladimir.medvedkin@intel.com> References: <1585241243-339118-1-git-send-email-vladimir.medvedkin@intel.com> In-Reply-To: <1583757860-375294-1-git-send-email-vladimir.medvedkin@intel.com> References: <1583757860-375294-1-git-send-email-vladimir.medvedkin@intel.com> Subject: [dpdk-dev] [PATCH v2 2/2] test: update hash performance tests X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add preformance test for rte_hash_lookup_with_hash_bulk_data() Signed-off-by: Vladimir Medvedkin --- app/test/test_hash_perf.c | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/app/test/test_hash_perf.c b/app/test/test_hash_perf.c index a438eae..e0d1600 100644 --- a/app/test/test_hash_perf.c +++ b/app/test/test_hash_perf.c @@ -391,8 +391,8 @@ timed_lookups(unsigned int with_hash, unsigned int with_data, } static int -timed_lookups_multi(unsigned int with_data, unsigned int table_index, - unsigned int ext) +timed_lookups_multi(unsigned int with_hash, unsigned int with_data, + unsigned int table_index, unsigned int ext) { unsigned i, j, k; int32_t positions_burst[BURST_SIZE]; @@ -417,7 +417,7 @@ timed_lookups_multi(unsigned int with_data, unsigned int table_index, for (j = 0; j < keys_to_add/BURST_SIZE; j++) { for (k = 0; k < BURST_SIZE; k++) keys_burst[k] = keys[j * BURST_SIZE + k]; - if (with_data) { + if (!with_hash && with_data) { ret = rte_hash_lookup_bulk_data(h[table_index], (const void **) keys_burst, BURST_SIZE, @@ -442,6 +442,39 @@ timed_lookups_multi(unsigned int with_data, unsigned int table_index, return -1; } } + } else if (with_hash && with_data) { + ret = rte_hash_lookup_with_hash_bulk_data( + h[table_index], + (const void **)keys_burst, + &signatures[j * BURST_SIZE], + BURST_SIZE, &hit_mask, ret_data); + if (ret != BURST_SIZE) { + printf("Expect to find %u keys," + " but found %d\n", + BURST_SIZE, ret); + return -1; + } + for (k = 0; k < BURST_SIZE; k++) { + if ((hit_mask & (1ULL << k)) == 0) { + printf("Key number %u" + " not found\n", + j * BURST_SIZE + k); + return -1; + } + expected_data[k] = + (void *)((uintptr_t)signatures[ + j * BURST_SIZE + k]); + if (ret_data[k] != expected_data[k]) { + printf("Data returned for key" + " number %u is %p," + " but should be %p\n", + j * BURST_SIZE + k, + ret_data[k], + expected_data[k]); + return -1; + } + } + } else { rte_hash_lookup_bulk(h[table_index], (const void **) keys_burst, @@ -462,7 +495,8 @@ timed_lookups_multi(unsigned int with_data, unsigned int table_index, const uint64_t end_tsc = rte_rdtsc(); const uint64_t time_taken = end_tsc - start_tsc; - cycles[table_index][LOOKUP_MULTI][0][with_data] = time_taken/num_lookups; + cycles[table_index][LOOKUP_MULTI][with_hash][with_data] = + time_taken/num_lookups; return 0; } @@ -543,7 +577,8 @@ run_all_tbl_perf_tests(unsigned int with_pushes, unsigned int with_locks, if (timed_lookups(with_hash, with_data, i, ext) < 0) return -1; - if (timed_lookups_multi(with_data, i, ext) < 0) + if (timed_lookups_multi(with_hash, with_data, + i, ext) < 0) return -1; if (timed_deletes(with_hash, with_data, i, ext) < 0) -- 2.7.4