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 BE27EA058A; Fri, 17 Apr 2020 15:38:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9BF3B1E8D1; Fri, 17 Apr 2020 15:37:24 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 3B8CD1E8D7 for ; Fri, 17 Apr 2020 15:37:20 +0200 (CEST) IronPort-SDR: STjmHjWtuH33BLAWlQl0O5TLOcSH8AhmVF9AGaNWwNa4Jet/OU2JMhFUdjlE5jFvNxe2LZhBSv 1PwsxjvqU6bg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2020 06:37:19 -0700 IronPort-SDR: byVLpcN1gCK2OEfX//nhuWYmUJL1iYgjeER6AmFmJLFTgBiiakuq9Xvr6lDUvF3b5VZ/euQbTR KISubL0syAHg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,395,1580803200"; d="scan'208";a="254209957" Received: from sivswdev08.ir.intel.com ([10.237.217.47]) by orsmga003.jf.intel.com with ESMTP; 17 Apr 2020 06:37:18 -0700 From: Konstantin Ananyev To: dev@dpdk.org Cc: honnappa.nagarahalli@arm.com, david.marchand@redhat.com, jielong.zjl@antfin.com, Konstantin Ananyev Date: Fri, 17 Apr 2020 14:36:34 +0100 Message-Id: <20200417133639.14019-5-konstantin.ananyev@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200417133639.14019-1-konstantin.ananyev@intel.com> References: <20200403174235.23308-1-konstantin.ananyev@intel.com> <20200417133639.14019-1-konstantin.ananyev@intel.com> Subject: [dpdk-dev] [PATCH v4 4/9] test/ring: add contention stress test for RTS ring 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" Introduce new test case to test RTS ring mode under contention. Signed-off-by: Konstantin Ananyev --- app/test/Makefile | 1 + app/test/meson.build | 1 + app/test/test_ring_rts_stress.c | 32 ++++++++++++++++++++++++++++++++ app/test/test_ring_stress.c | 3 +++ app/test/test_ring_stress.h | 1 + 5 files changed, 38 insertions(+) create mode 100644 app/test/test_ring_rts_stress.c diff --git a/app/test/Makefile b/app/test/Makefile index a23a011df..00b74b5c9 100644 --- a/app/test/Makefile +++ b/app/test/Makefile @@ -79,6 +79,7 @@ SRCS-y += test_rand_perf.c SRCS-y += test_ring.c SRCS-y += test_ring_mpmc_stress.c SRCS-y += test_ring_perf.c +SRCS-y += test_ring_rts_stress.c SRCS-y += test_ring_stress.c SRCS-y += test_pmd_perf.c diff --git a/app/test/meson.build b/app/test/meson.build index 8824f366c..97ad822c1 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -102,6 +102,7 @@ test_sources = files('commands.c', 'test_ring.c', 'test_ring_mpmc_stress.c', 'test_ring_perf.c', + 'test_ring_rts_stress.c', 'test_ring_stress.c', 'test_rwlock.c', 'test_sched.c', diff --git a/app/test/test_ring_rts_stress.c b/app/test/test_ring_rts_stress.c new file mode 100644 index 000000000..f5255f24c --- /dev/null +++ b/app/test/test_ring_rts_stress.c @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2020 Intel Corporation + */ + +#include "test_ring_stress_impl.h" + +static inline uint32_t +_st_ring_dequeue_bulk(struct rte_ring *r, void **obj, uint32_t n, + uint32_t *avail) +{ + return rte_ring_mc_rts_dequeue_bulk(r, obj, n, avail); +} + +static inline uint32_t +_st_ring_enqueue_bulk(struct rte_ring *r, void * const *obj, uint32_t n, + uint32_t *free) +{ + return rte_ring_mp_rts_enqueue_bulk(r, obj, n, free); +} + +static int +_st_ring_init(struct rte_ring *r, const char *name, uint32_t num) +{ + return rte_ring_init(r, name, num, + RING_F_MP_RTS_ENQ | RING_F_MC_RTS_DEQ); +} + +const struct test test_ring_rts_stress = { + .name = "MT_RTS", + .nb_case = RTE_DIM(tests), + .cases = tests, +}; diff --git a/app/test/test_ring_stress.c b/app/test/test_ring_stress.c index 60706f799..eab395e30 100644 --- a/app/test/test_ring_stress.c +++ b/app/test/test_ring_stress.c @@ -40,6 +40,9 @@ test_ring_stress(void) n += test_ring_mpmc_stress.nb_case; k += run_test(&test_ring_mpmc_stress); + n += test_ring_rts_stress.nb_case; + k += run_test(&test_ring_rts_stress); + printf("Number of tests:\t%u\nSuccess:\t%u\nFailed:\t%u\n", n, k, n - k); return (k != n); diff --git a/app/test/test_ring_stress.h b/app/test/test_ring_stress.h index 60eac6216..32aae2072 100644 --- a/app/test/test_ring_stress.h +++ b/app/test/test_ring_stress.h @@ -33,3 +33,4 @@ struct test { }; extern const struct test test_ring_mpmc_stress; +extern const struct test test_ring_rts_stress; -- 2.17.1