From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id D7BB1D287 for ; Fri, 24 Mar 2017 18:10:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490375430; x=1521911430; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=qRBiahyWXT1Csli3GTW0ojDhVbmhfQanh3TfRiAHSHI=; b=ldU2WJbTUJS1ZuQqEjlyqEbDFT29XCMVrT7FPf+09QHoe4YkMLGXQEaK sgv16i3qtRTQfxnmsGionCqNMKfdyA==; Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Mar 2017 10:10:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,215,1486454400"; d="scan'208";a="1146576353" Received: from sivswdev01.ir.intel.com ([10.237.217.45]) by fmsmga002.fm.intel.com with ESMTP; 24 Mar 2017 10:10:27 -0700 From: Bruce Richardson To: olivier.matz@6wind.com Cc: dev@dpdk.org, jerin.jacob@caviumnetworks.com, thomas.monjalon@6wind.com, Bruce Richardson Date: Fri, 24 Mar 2017 17:09:54 +0000 Message-Id: <20170324171008.29355-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.8.4 In-Reply-To: <20170307113217.11077-1-bruce.richardson@intel.com> References: <20170307113217.11077-1-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH v3 00/14] refactor and cleanup of rte_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: , X-List-Received-Date: Fri, 24 Mar 2017 17:10:31 -0000 This patchset make a set of, sometimes non-backward compatible, cleanup changes to the rte_ring code in order to improve it. The resulting code is shorter, since the existing functions are restructured to reduce code duplication, as well as being more consistent in behaviour. The specific changes made are explained in each patch which makes that change. Changes in V3: * removed anonymous union for sp_enqueue and sc_dequeue variables (p2) * fixed parameter to dequeue function which was mistakenly named is_mp instead of is_sc (as described in the comments) (p12) * skipped unneeded check in tail pointer update fn for sp/sc operation (p13) Changes in V2: * Eliminated extra cacheline padding where cachelines are 128B * Renamed rte_ring_ht_ptr struct to rte_ring_headtail * Removed missed references to ring watermarks in test code and docs This patchset is largely the same as that posted previously on-list as an RFC: http://dpdk.org/ml/archives/dev/2017-February/thread.html#56982 Changes in V1 from RFC: * Included release notes updates as changes are made in each patch * Fixed some missed comment updates when changing the code * Separated some initial fixup patches from this set to send separately * Dropped the final two patches for an rte_event_ring, as not relevant for this set. That can be done as a separate set later. * The macros for copying the pointers have an extra parameter added, indicating the start of the ring buffer itself. This allows more flexibility for reusing them in other ring implementations. Bruce Richardson (14): ring: remove split cacheline build setting ring: create common structure for prod and cons metadata ring: eliminate duplication of size and mask fields ring: remove debug setting ring: remove the yield when waiting for tail update ring: remove watermark support ring: make bulk and burst fn return vals consistent ring: allow enqueue fns to return free space value ring: allow dequeue fns to return remaining entry count examples/quota_watermark: use ring space for watermarks ring: reduce scope of local variables ring: separate out head index manipulation for enq/deq ring: create common function for updating tail idx ring: make ring struct and enq/deq macros type agnostic app/pdump/main.c | 2 +- config/common_base | 3 - doc/guides/prog_guide/env_abstraction_layer.rst | 5 - doc/guides/prog_guide/ring_lib.rst | 15 - doc/guides/rel_notes/release_17_05.rst | 33 + doc/guides/sample_app_ug/server_node_efd.rst | 2 +- drivers/crypto/null/null_crypto_pmd.c | 2 +- drivers/net/bonding/rte_eth_bond_pmd.c | 3 +- drivers/net/ring/rte_eth_ring.c | 4 +- examples/distributor/main.c | 5 +- examples/load_balancer/runtime.c | 34 +- .../client_server_mp/mp_client/client.c | 9 +- .../client_server_mp/mp_server/main.c | 2 +- examples/packet_ordering/main.c | 13 +- examples/qos_sched/app_thread.c | 14 +- examples/quota_watermark/qw/init.c | 5 +- examples/quota_watermark/qw/main.c | 21 +- examples/quota_watermark/qw/main.h | 1 + examples/quota_watermark/qwctl/commands.c | 4 +- examples/quota_watermark/qwctl/qwctl.c | 2 + examples/quota_watermark/qwctl/qwctl.h | 1 + examples/server_node_efd/node/node.c | 2 +- examples/server_node_efd/server/main.c | 2 +- lib/librte_hash/rte_cuckoo_hash.c | 5 +- lib/librte_mempool/rte_mempool_ring.c | 12 +- lib/librte_pdump/rte_pdump.c | 4 +- lib/librte_port/rte_port_frag.c | 3 +- lib/librte_port/rte_port_ras.c | 2 +- lib/librte_port/rte_port_ring.c | 46 +- lib/librte_ring/rte_ring.c | 76 +-- lib/librte_ring/rte_ring.h | 759 ++++++++------------- test/test-pipeline/pipeline_hash.c | 5 +- test/test-pipeline/runtime.c | 19 +- test/test/autotest_test_funcs.py | 7 - test/test/commands.c | 52 -- test/test/test_link_bonding_mode4.c | 6 +- test/test/test_pmd_ring_perf.c | 12 +- test/test/test_ring.c | 704 +++---------------- test/test/test_ring_perf.c | 36 +- test/test/test_table_acl.c | 2 +- test/test/test_table_pipeline.c | 2 +- test/test/test_table_ports.c | 12 +- test/test/virtual_pmd.c | 8 +- 43 files changed, 561 insertions(+), 1395 deletions(-) -- 2.9.3