From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id D28C17CFC for ; Mon, 21 Aug 2017 14:58:26 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP; 21 Aug 2017 05:58:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,409,1498546800"; d="scan'208";a="1208383246" Received: from silpixa00398672.ir.intel.com ([10.237.223.128]) by fmsmga002.fm.intel.com with ESMTP; 21 Aug 2017 05:58:24 -0700 From: Harry van Haaren To: dev@dpdk.org Cc: Harry van Haaren Date: Mon, 21 Aug 2017 13:58:01 +0100 Message-Id: <1503320296-51122-1-git-send-email-harry.van.haaren@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1502800360-15782-1-git-send-email-harry.van.haaren@intel.com> References: <1502800360-15782-1-git-send-email-harry.van.haaren@intel.com> Subject: [dpdk-dev] [PATCH v2 00/15] service: API improvements and updates 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: Mon, 21 Aug 2017 12:58:27 -0000 This patchset reworks the service apis to be more user friendly. In particular, the various rte_service_* functions now take an integer id parameter instead of a service pointer. This both reduces the API surface (no service_get_from_id()), and allows easier debugging (gdb function calls with integer args), and various other benefits (better encapsulation, less pointers :) Finally, some APIs are changed or renamed for consistency and clarity of what they do. See commit messages for details. Note that the service library is merged as EXPERIMENTAL in the 17.08 release, allowing API improvements for 17.11 release. I hope to merge this patchset early in the 17.11 timeframe, so please review ASAP to allow time for other DPDK components to utilize services in this release :) Feedback and input welcome, -Harry v2: - Rename API functions from service_register to service_component_register to clearly show which of the APIs apply to services and which apply to the service components. - There are 4 "fixes" patches, each one targetting a specific issue that was observered or discovered since the 17.08 release. See commit messages for details about the issue, and the resolution. - Added "component runstate" concept, to allow components indicate if they are ready to have their service callback invoked. - Improve documentation, and update doxygen comments to make the usage of the service component APIs clearer. Harry van Haaren (15): service: rework probe and get name to use ids service: rework lcore to service map functions service: rework register to return service id service: rework service start stop to runstate service: rework service stats functions service: rework unregister api to use integers service: rework get by name function to use id service: fix and refactor atomic service accesses service: fix loops to always scan all services service: fix return values of functions to 0 or 1 service: fix lcore in wait state in lcore add service: reset core call stats on dump service: add component runstate service: clarify documentation for register docs: add notes on service cores API updates doc/guides/rel_notes/release_17_11.rst | 20 ++ drivers/event/sw/sw_evdev.c | 7 +- drivers/event/sw/sw_evdev.h | 1 + lib/librte_eal/bsdapp/eal/rte_eal_version.map | 16 +- lib/librte_eal/common/include/rte_service.h | 144 +++++------- .../common/include/rte_service_component.h | 36 ++- lib/librte_eal/common/rte_service.c | 256 +++++++++++---------- lib/librte_eal/linuxapp/eal/rte_eal_version.map | 16 +- test/test/test_service_cores.c | 155 +++++++------ 9 files changed, 349 insertions(+), 302 deletions(-) -- 2.7.4