[dpdk-dev] [PATCH v2 00/15] service: API improvements and updates

Harry van Haaren harry.van.haaren at intel.com
Mon Aug 21 14:58:01 CEST 2017


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



More information about the dev mailing list