service: remove experimental tags
This commit removes the experimental tags from the service cores functions, they now become part of the main DPDK API/ABI. Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
parent
4754ceaa09
commit
60df571197
|
@ -187,7 +187,7 @@ F: test/test/test_mp_secondary.c
|
|||
F: examples/multi_process/
|
||||
F: doc/guides/sample_app_ug/multi_process.rst
|
||||
|
||||
Service Cores - EXPERIMENTAL
|
||||
Service Cores
|
||||
M: Harry van Haaren <harry.van.haaren@intel.com>
|
||||
F: lib/librte_eal/common/include/rte_service.h
|
||||
F: lib/librte_eal/common/include/rte_service_component.h
|
||||
|
|
|
@ -154,6 +154,13 @@ API Changes
|
|||
Also, make sure to start the actual text at the margin.
|
||||
=========================================================
|
||||
|
||||
* service cores: no longer marked as experimental.
|
||||
|
||||
The service cores functions are no longer marked as experimental, and have
|
||||
become part of the normal DPDK API and ABI. Any future ABI changes will be
|
||||
announced at least one release before the ABI change is made. There are no
|
||||
ABI breaking changes planned.
|
||||
|
||||
* mempool: capability flags and related functions have been removed.
|
||||
|
||||
Flags ``MEMPOOL_F_CAPA_PHYS_CONTIG`` and
|
||||
|
|
|
@ -23,8 +23,6 @@ CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
|
|||
LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
|
||||
LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
|
||||
build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
|
||||
$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
|
||||
|
||||
|
@ -50,7 +48,6 @@ RTE_TARGET ?= x86_64-native-linuxapp-gcc
|
|||
|
||||
include $(RTE_SDK)/mk/rte.vars.mk
|
||||
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += $(WERROR_FLAGS)
|
||||
|
||||
# workaround for a gcc bug with noreturn attribute
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
# To build this example as a standalone application with an already-installed
|
||||
# DPDK instance, use 'make'
|
||||
|
||||
allow_experimental_apis = true
|
||||
sources = files(
|
||||
'main.c'
|
||||
)
|
||||
|
|
|
@ -47,9 +47,6 @@ extern "C" {
|
|||
#define RTE_SERVICE_CAP_MT_SAFE (1 << 0)
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Return the number of services registered.
|
||||
*
|
||||
* The number of services registered can be passed to *rte_service_get_by_id*,
|
||||
|
@ -57,12 +54,9 @@ extern "C" {
|
|||
*
|
||||
* @return The number of services registered.
|
||||
*/
|
||||
uint32_t __rte_experimental rte_service_get_count(void);
|
||||
uint32_t rte_service_get_count(void);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Return the id of a service by name.
|
||||
*
|
||||
* This function provides the id of the service using the service name as
|
||||
|
@ -84,24 +78,17 @@ uint32_t __rte_experimental rte_service_get_count(void);
|
|||
* @retval -EINVAL Null *service_id* pointer provided
|
||||
* @retval -ENODEV No such service registered
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_get_by_name(const char *name,
|
||||
uint32_t *service_id);
|
||||
int32_t rte_service_get_by_name(const char *name, uint32_t *service_id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Return the name of the service.
|
||||
*
|
||||
* @return A pointer to the name of the service. The returned pointer remains
|
||||
* in ownership of the service, and the application must not free it.
|
||||
*/
|
||||
const char __rte_experimental *rte_service_get_name(uint32_t id);
|
||||
const char *rte_service_get_name(uint32_t id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Check if a service has a specific capability.
|
||||
*
|
||||
* This function returns if *service* has implements *capability*.
|
||||
|
@ -109,13 +96,9 @@ const char __rte_experimental *rte_service_get_name(uint32_t id);
|
|||
* @retval 1 Capability supported by this service instance
|
||||
* @retval 0 Capability not supported by this service instance
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_probe_capability(uint32_t id,
|
||||
uint32_t capability);
|
||||
int32_t rte_service_probe_capability(uint32_t id, uint32_t capability);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Map or unmap a lcore to a service.
|
||||
*
|
||||
* Each core can be added or removed from running a specific service. This
|
||||
|
@ -134,13 +117,10 @@ int32_t __rte_experimental rte_service_probe_capability(uint32_t id,
|
|||
* @retval 0 lcore map updated successfully
|
||||
* @retval -EINVAL An invalid service or lcore was provided.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_map_lcore_set(uint32_t service_id,
|
||||
uint32_t lcore, uint32_t enable);
|
||||
int32_t rte_service_map_lcore_set(uint32_t service_id, uint32_t lcore,
|
||||
uint32_t enable);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Retrieve the mapping of an lcore to a service.
|
||||
*
|
||||
* @param service_id the service to apply the lcore to
|
||||
|
@ -150,13 +130,9 @@ int32_t __rte_experimental rte_service_map_lcore_set(uint32_t service_id,
|
|||
* @retval 0 lcore is not mapped to service
|
||||
* @retval -EINVAL An invalid service or lcore was provided.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_map_lcore_get(uint32_t service_id,
|
||||
uint32_t lcore);
|
||||
int32_t rte_service_map_lcore_get(uint32_t service_id, uint32_t lcore);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Set the runstate of the service.
|
||||
*
|
||||
* Each service is either running or stopped. Setting a non-zero runstate
|
||||
|
@ -168,12 +144,9 @@ int32_t __rte_experimental rte_service_map_lcore_get(uint32_t service_id,
|
|||
* @retval 0 The service was successfully started
|
||||
* @retval -EINVAL Invalid service id
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_runstate_set(uint32_t id, uint32_t runstate);
|
||||
int32_t rte_service_runstate_set(uint32_t id, uint32_t runstate);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Get the runstate for the service with *id*. See *rte_service_runstate_set*
|
||||
* for details of runstates. A service can call this function to ensure that
|
||||
* the application has indicated that it will receive CPU cycles. Either a
|
||||
|
@ -186,12 +159,9 @@ int32_t __rte_experimental rte_service_runstate_set(uint32_t id, uint32_t runsta
|
|||
* @retval 0 Service is stopped
|
||||
* @retval -EINVAL Invalid service id
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_runstate_get(uint32_t id);
|
||||
int32_t rte_service_runstate_get(uint32_t id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Enable or disable the check for a service-core being mapped to the service.
|
||||
* An application can disable the check when takes the responsibility to run a
|
||||
* service itself using *rte_service_run_iter_on_app_lcore*.
|
||||
|
@ -202,13 +172,9 @@ int32_t __rte_experimental rte_service_runstate_get(uint32_t id);
|
|||
* @retval 0 Success
|
||||
* @retval -EINVAL Invalid service ID
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_set_runstate_mapped_check(uint32_t id,
|
||||
int32_t enable);
|
||||
int32_t rte_service_set_runstate_mapped_check(uint32_t id, int32_t enable);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* This function runs a service callback from a non-service lcore.
|
||||
*
|
||||
* This function is designed to enable gradual porting to service cores, and
|
||||
|
@ -241,13 +207,10 @@ int32_t __rte_experimental rte_service_set_runstate_mapped_check(uint32_t id,
|
|||
* @retval -ENOEXEC Service is not in a run-able state
|
||||
* @retval -EINVAL Invalid service id
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_run_iter_on_app_lcore(uint32_t id,
|
||||
int32_t rte_service_run_iter_on_app_lcore(uint32_t id,
|
||||
uint32_t serialize_multithread_unsafe);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Start a service core.
|
||||
*
|
||||
* Starting a core makes the core begin polling. Any services assigned to it
|
||||
|
@ -259,12 +222,9 @@ int32_t __rte_experimental rte_service_run_iter_on_app_lcore(uint32_t id,
|
|||
* @retval -EINVAL Failed to start core. The *lcore_id* passed in is not
|
||||
* currently assigned to be a service core.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_start(uint32_t lcore_id);
|
||||
int32_t rte_service_lcore_start(uint32_t lcore_id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Stop a service core.
|
||||
*
|
||||
* Stopping a core makes the core become idle, but remains assigned as a
|
||||
|
@ -278,12 +238,9 @@ int32_t __rte_experimental rte_service_lcore_start(uint32_t lcore_id);
|
|||
* The application must stop the service first, and then stop the
|
||||
* lcore.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_stop(uint32_t lcore_id);
|
||||
int32_t rte_service_lcore_stop(uint32_t lcore_id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Adds lcore to the list of service cores.
|
||||
*
|
||||
* This functions can be used at runtime in order to modify the service core
|
||||
|
@ -294,12 +251,9 @@ int32_t __rte_experimental rte_service_lcore_stop(uint32_t lcore_id);
|
|||
* @retval -EALREADY lcore is already added to the service core list
|
||||
* @retval -EINVAL Invalid lcore provided
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_add(uint32_t lcore);
|
||||
int32_t rte_service_lcore_add(uint32_t lcore);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Removes lcore from the list of service cores.
|
||||
*
|
||||
* This can fail if the core is not stopped, see *rte_service_core_stop*.
|
||||
|
@ -308,12 +262,9 @@ int32_t __rte_experimental rte_service_lcore_add(uint32_t lcore);
|
|||
* @retval -EBUSY Lcore is not stopped, stop service core before removing.
|
||||
* @retval -EINVAL failed to add lcore to service core mask.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_del(uint32_t lcore);
|
||||
int32_t rte_service_lcore_del(uint32_t lcore);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Retrieve the number of service cores currently available.
|
||||
*
|
||||
* This function returns the integer count of service cores available. The
|
||||
|
@ -325,24 +276,18 @@ int32_t __rte_experimental rte_service_lcore_del(uint32_t lcore);
|
|||
*
|
||||
* @return The number of service cores currently configured.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_count(void);
|
||||
int32_t rte_service_lcore_count(void);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Resets all service core mappings. This does not remove the service cores
|
||||
* from duty, just unmaps all services / cores, and stops() the service cores.
|
||||
* The runstate of services is not modified.
|
||||
*
|
||||
* @retval 0 Success
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_reset_all(void);
|
||||
int32_t rte_service_lcore_reset_all(void);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Enable or disable statistics collection for *service*.
|
||||
*
|
||||
* This function enables per core, per-service cycle count collection.
|
||||
|
@ -351,13 +296,9 @@ int32_t __rte_experimental rte_service_lcore_reset_all(void);
|
|||
* @retval 0 Success
|
||||
* @retval -EINVAL Invalid service pointer passed
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_set_stats_enable(uint32_t id,
|
||||
int32_t enable);
|
||||
int32_t rte_service_set_stats_enable(uint32_t id, int32_t enable);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Retrieve the list of currently enabled service cores.
|
||||
*
|
||||
* This function fills in an application supplied array, with each element
|
||||
|
@ -373,12 +314,9 @@ int32_t __rte_experimental rte_service_set_stats_enable(uint32_t id,
|
|||
* service core list. No items have been populated, call this function
|
||||
* with a size of at least *rte_service_core_count* items.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_list(uint32_t array[], uint32_t n);
|
||||
int32_t rte_service_lcore_list(uint32_t array[], uint32_t n);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Get the numer of services running on the supplied lcore.
|
||||
*
|
||||
* @param lcore Id of the service core.
|
||||
|
@ -386,19 +324,16 @@ int32_t __rte_experimental rte_service_lcore_list(uint32_t array[], uint32_t n);
|
|||
* @retval -EINVAL Invalid lcore provided
|
||||
* @retval -ENOTSUP The provided lcore is not a service core.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_lcore_count_services(uint32_t lcore);
|
||||
int32_t rte_service_lcore_count_services(uint32_t lcore);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Dumps any information available about the service. When id is UINT32_MAX,
|
||||
* this function dumps info for all services.
|
||||
*
|
||||
* @retval 0 Statistics have been successfully dumped
|
||||
* @retval -EINVAL Invalid service id provided
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_dump(FILE *f, uint32_t id);
|
||||
int32_t rte_service_dump(FILE *f, uint32_t id);
|
||||
|
||||
/**
|
||||
* Returns the number of cycles that this service has consumed
|
||||
|
@ -411,28 +346,22 @@ int32_t __rte_experimental rte_service_dump(FILE *f, uint32_t id);
|
|||
#define RTE_SERVICE_ATTR_CALL_COUNT 1
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Get an attribute from a service.
|
||||
*
|
||||
* @retval 0 Success, the attribute value has been written to *attr_value*.
|
||||
* -EINVAL Invalid id, attr_id or attr_value was NULL.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_attr_get(uint32_t id, uint32_t attr_id,
|
||||
int32_t rte_service_attr_get(uint32_t id, uint32_t attr_id,
|
||||
uint32_t *attr_value);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Reset all attribute values of a service.
|
||||
*
|
||||
* @param id The service to reset all statistics of
|
||||
* @retval 0 Successfully reset attributes
|
||||
* -EINVAL Invalid service id provided
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_attr_reset_all(uint32_t id);
|
||||
int32_t rte_service_attr_reset_all(uint32_t id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -13,17 +13,11 @@
|
|||
#include <rte_service.h>
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Signature of callback function to run a service.
|
||||
*/
|
||||
typedef int32_t (*rte_service_func)(void *args);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* The specification of a service.
|
||||
*
|
||||
* This struct contains metadata about the service itself, the callback
|
||||
|
@ -47,9 +41,6 @@ struct rte_service_spec {
|
|||
};
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Register a new service.
|
||||
*
|
||||
* A service represents a component that the requires CPU time periodically to
|
||||
|
@ -73,14 +64,10 @@ struct rte_service_spec {
|
|||
* -EINVAL Attempted to register an invalid service (eg, no callback
|
||||
* set)
|
||||
*/
|
||||
int32_t __rte_experimental
|
||||
rte_service_component_register(const struct rte_service_spec *spec,
|
||||
uint32_t *service_id);
|
||||
int32_t rte_service_component_register(const struct rte_service_spec *spec,
|
||||
uint32_t *service_id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Unregister a service component.
|
||||
*
|
||||
* The service being removed must be stopped before calling this function.
|
||||
|
@ -89,12 +76,9 @@ rte_service_component_register(const struct rte_service_spec *spec,
|
|||
* @retval -EBUSY The service is currently running, stop the service before
|
||||
* calling unregister. No action has been taken.
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_component_unregister(uint32_t id);
|
||||
int32_t rte_service_component_unregister(uint32_t id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Private function to allow EAL to initialized default mappings.
|
||||
*
|
||||
* This function iterates all the services, and maps then to the available
|
||||
|
@ -107,12 +91,9 @@ int32_t __rte_experimental rte_service_component_unregister(uint32_t id);
|
|||
* @retval -ENODEV Error in enabling service lcore on a service
|
||||
* @retval -ENOEXEC Error when starting services
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_start_with_defaults(void);
|
||||
int32_t rte_service_start_with_defaults(void);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Set the backend runstate of a component.
|
||||
*
|
||||
* This function allows services to be registered at startup, but not yet
|
||||
|
@ -124,13 +105,9 @@ int32_t __rte_experimental rte_service_start_with_defaults(void);
|
|||
*
|
||||
* @retval 0 Success
|
||||
*/
|
||||
int32_t __rte_experimental rte_service_component_runstate_set(uint32_t id,
|
||||
uint32_t runstate);
|
||||
int32_t rte_service_component_runstate_set(uint32_t id, uint32_t runstate);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* Initialize the service library.
|
||||
*
|
||||
* In order to use the service library, it must be initialized. EAL initializes
|
||||
|
@ -142,14 +119,11 @@ int32_t __rte_experimental rte_service_component_runstate_set(uint32_t id,
|
|||
int32_t rte_service_init(void);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice
|
||||
*
|
||||
* @internal Free up the memory that has been initialized.
|
||||
* This routine is to be invoked prior to process termination.
|
||||
*
|
||||
* @retval None
|
||||
*/
|
||||
void __rte_experimental rte_service_finalize(void);
|
||||
void rte_service_finalize(void);
|
||||
|
||||
#endif /* _RTE_SERVICE_PRIVATE_H_ */
|
||||
|
|
|
@ -115,7 +115,7 @@ int32_t rte_service_init(void)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
void __rte_experimental
|
||||
void
|
||||
rte_service_finalize(void)
|
||||
{
|
||||
if (!rte_service_library_initialized)
|
||||
|
@ -161,7 +161,7 @@ service_mt_safe(struct rte_service_spec_impl *s)
|
|||
return !!(s->spec.capabilities & RTE_SERVICE_CAP_MT_SAFE);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_set_stats_enable(uint32_t id, int32_t enabled)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -175,7 +175,7 @@ rte_service_set_stats_enable(uint32_t id, int32_t enabled)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_set_runstate_mapped_check(uint32_t id, int32_t enabled)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -189,13 +189,13 @@ rte_service_set_runstate_mapped_check(uint32_t id, int32_t enabled)
|
|||
return 0;
|
||||
}
|
||||
|
||||
uint32_t __rte_experimental
|
||||
uint32_t
|
||||
rte_service_get_count(void)
|
||||
{
|
||||
return rte_service_count;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_get_by_name(const char *name, uint32_t *service_id)
|
||||
{
|
||||
if (!service_id)
|
||||
|
@ -213,7 +213,7 @@ rte_service_get_by_name(const char *name, uint32_t *service_id)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
const char * __rte_experimental
|
||||
const char *
|
||||
rte_service_get_name(uint32_t id)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -221,7 +221,7 @@ rte_service_get_name(uint32_t id)
|
|||
return s->spec.name;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_probe_capability(uint32_t id, uint32_t capability)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -229,7 +229,7 @@ rte_service_probe_capability(uint32_t id, uint32_t capability)
|
|||
return !!(s->spec.capabilities & capability);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_component_register(const struct rte_service_spec *spec,
|
||||
uint32_t *id_ptr)
|
||||
{
|
||||
|
@ -262,7 +262,7 @@ rte_service_component_register(const struct rte_service_spec *spec,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_component_unregister(uint32_t id)
|
||||
{
|
||||
uint32_t i;
|
||||
|
@ -283,7 +283,7 @@ rte_service_component_unregister(uint32_t id)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_component_runstate_set(uint32_t id, uint32_t runstate)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -298,7 +298,7 @@ rte_service_component_runstate_set(uint32_t id, uint32_t runstate)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_runstate_set(uint32_t id, uint32_t runstate)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -313,7 +313,7 @@ rte_service_runstate_set(uint32_t id, uint32_t runstate)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_runstate_get(uint32_t id)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -374,7 +374,7 @@ service_run(uint32_t i, struct core_state *cs, uint64_t service_mask)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental rte_service_run_iter_on_app_lcore(uint32_t id,
|
||||
int32_t rte_service_run_iter_on_app_lcore(uint32_t id,
|
||||
uint32_t serialize_mt_unsafe)
|
||||
{
|
||||
/* run service on calling core, using all-ones as the service mask */
|
||||
|
@ -430,7 +430,7 @@ rte_service_runner_func(void *arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_count(void)
|
||||
{
|
||||
int32_t count = 0;
|
||||
|
@ -440,7 +440,7 @@ rte_service_lcore_count(void)
|
|||
return count;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_list(uint32_t array[], uint32_t n)
|
||||
{
|
||||
uint32_t count = rte_service_lcore_count();
|
||||
|
@ -463,7 +463,7 @@ rte_service_lcore_list(uint32_t array[], uint32_t n)
|
|||
return count;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_count_services(uint32_t lcore)
|
||||
{
|
||||
if (lcore >= RTE_MAX_LCORE)
|
||||
|
@ -476,7 +476,7 @@ rte_service_lcore_count_services(uint32_t lcore)
|
|||
return __builtin_popcountll(cs->service_mask);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_start_with_defaults(void)
|
||||
{
|
||||
/* create a default mapping from cores to services, then start the
|
||||
|
@ -562,7 +562,7 @@ service_update(struct rte_service_spec *service, uint32_t lcore,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_map_lcore_set(uint32_t id, uint32_t lcore, uint32_t enabled)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -571,7 +571,7 @@ rte_service_map_lcore_set(uint32_t id, uint32_t lcore, uint32_t enabled)
|
|||
return service_update(&s->spec, lcore, &on, 0);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_map_lcore_get(uint32_t id, uint32_t lcore)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -597,7 +597,7 @@ set_lcore_state(uint32_t lcore, int32_t state)
|
|||
lcore_states[lcore].is_service_core = (state == ROLE_SERVICE);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_reset_all(void)
|
||||
{
|
||||
/* loop over cores, reset all to mask 0 */
|
||||
|
@ -617,7 +617,7 @@ rte_service_lcore_reset_all(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_add(uint32_t lcore)
|
||||
{
|
||||
if (lcore >= RTE_MAX_LCORE)
|
||||
|
@ -636,7 +636,7 @@ rte_service_lcore_add(uint32_t lcore)
|
|||
return rte_eal_wait_lcore(lcore);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_del(uint32_t lcore)
|
||||
{
|
||||
if (lcore >= RTE_MAX_LCORE)
|
||||
|
@ -655,7 +655,7 @@ rte_service_lcore_del(uint32_t lcore)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_start(uint32_t lcore)
|
||||
{
|
||||
if (lcore >= RTE_MAX_LCORE)
|
||||
|
@ -678,7 +678,7 @@ rte_service_lcore_start(uint32_t lcore)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_lcore_stop(uint32_t lcore)
|
||||
{
|
||||
if (lcore >= RTE_MAX_LCORE)
|
||||
|
@ -708,7 +708,7 @@ rte_service_lcore_stop(uint32_t lcore)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_attr_get(uint32_t id, uint32_t attr_id, uint32_t *attr_value)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -753,7 +753,7 @@ rte_service_dump_one(FILE *f, struct rte_service_spec_impl *s,
|
|||
s->cycles_spent, s->cycles_spent / calls);
|
||||
}
|
||||
|
||||
int32_t __rte_experimental
|
||||
int32_t
|
||||
rte_service_attr_reset_all(uint32_t id)
|
||||
{
|
||||
struct rte_service_spec_impl *s;
|
||||
|
@ -781,7 +781,8 @@ service_dump_calls_per_lcore(FILE *f, uint32_t lcore, uint32_t reset)
|
|||
fprintf(f, "\n");
|
||||
}
|
||||
|
||||
int32_t __rte_experimental rte_service_dump(FILE *f, uint32_t id)
|
||||
int32_t
|
||||
rte_service_dump(FILE *f, uint32_t id)
|
||||
{
|
||||
uint32_t i;
|
||||
int print_one = (id != UINT32_MAX);
|
||||
|
|
|
@ -213,6 +213,34 @@ DPDK_18.05 {
|
|||
global:
|
||||
|
||||
rte_log_set_level_pattern;
|
||||
rte_service_attr_get;
|
||||
rte_service_attr_reset_all;
|
||||
rte_service_component_register;
|
||||
rte_service_component_runstate_set;
|
||||
rte_service_component_unregister;
|
||||
rte_service_dump;
|
||||
rte_service_finalize;
|
||||
rte_service_get_by_id;
|
||||
rte_service_get_by_name;
|
||||
rte_service_get_count;
|
||||
rte_service_get_name;
|
||||
rte_service_lcore_add;
|
||||
rte_service_lcore_count;
|
||||
rte_service_lcore_count_services;
|
||||
rte_service_lcore_del;
|
||||
rte_service_lcore_list;
|
||||
rte_service_lcore_reset_all;
|
||||
rte_service_lcore_start;
|
||||
rte_service_lcore_stop;
|
||||
rte_service_map_lcore_get;
|
||||
rte_service_map_lcore_set;
|
||||
rte_service_probe_capability;
|
||||
rte_service_run_iter_on_app_lcore;
|
||||
rte_service_runstate_get;
|
||||
rte_service_runstate_set;
|
||||
rte_service_set_runstate_mapped_check;
|
||||
rte_service_set_stats_enable;
|
||||
rte_service_start_with_defaults;
|
||||
|
||||
} DPDK_18.02;
|
||||
|
||||
|
@ -269,34 +297,6 @@ EXPERIMENTAL {
|
|||
rte_mp_request_sync;
|
||||
rte_mp_request_async;
|
||||
rte_mp_sendmsg;
|
||||
rte_service_attr_get;
|
||||
rte_service_attr_reset_all;
|
||||
rte_service_component_register;
|
||||
rte_service_component_unregister;
|
||||
rte_service_component_runstate_set;
|
||||
rte_service_dump;
|
||||
rte_service_finalize;
|
||||
rte_service_get_by_id;
|
||||
rte_service_get_by_name;
|
||||
rte_service_get_count;
|
||||
rte_service_get_name;
|
||||
rte_service_lcore_add;
|
||||
rte_service_lcore_count;
|
||||
rte_service_lcore_count_services;
|
||||
rte_service_lcore_del;
|
||||
rte_service_lcore_list;
|
||||
rte_service_lcore_reset_all;
|
||||
rte_service_lcore_start;
|
||||
rte_service_lcore_stop;
|
||||
rte_service_map_lcore_get;
|
||||
rte_service_map_lcore_set;
|
||||
rte_service_probe_capability;
|
||||
rte_service_run_iter_on_app_lcore;
|
||||
rte_service_runstate_get;
|
||||
rte_service_runstate_set;
|
||||
rte_service_set_runstate_mapped_check;
|
||||
rte_service_set_stats_enable;
|
||||
rte_service_start_with_defaults;
|
||||
rte_socket_count;
|
||||
rte_socket_id_by_idx;
|
||||
rte_vfio_dma_map;
|
||||
|
|
Loading…
Reference in a new issue