[PATCH 2/6] net/nfp: remove redundant NFP service code

Chaoyong He chaoyong.he at corigine.com
Wed Jun 19 05:06:51 CEST 2024


From: Long Wu <long.wu at corigine.com>

The 'rte_eal_init()' will call 'rte_service_start_with_defaults()'
to start service core, map service core and set service state.
NFP service does not have any special needs for these setps, so
remove the redundant NFP service code.

Signed-off-by: Long Wu <long.wu at corigine.com>
Reviewed-by: Peng Zhang <peng.zhang at corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he at corigine.com>
---
 drivers/net/nfp/nfp_service.c | 76 +++++------------------------------
 drivers/net/nfp/nfp_service.h |  1 -
 2 files changed, 10 insertions(+), 67 deletions(-)

diff --git a/drivers/net/nfp/nfp_service.c b/drivers/net/nfp/nfp_service.c
index 24d60857ac..37e2187a3f 100644
--- a/drivers/net/nfp/nfp_service.c
+++ b/drivers/net/nfp/nfp_service.c
@@ -5,68 +5,24 @@
 
 #include "nfp_service.h"
 
-#include "nfpcore/nfp_cpp.h"
+#include <errno.h>
+#include <rte_cycles.h>
+
 #include "nfp_logs.h"
 
 /* Disable service and try to get service status */
 #define NFP_SERVICE_DISABLE_WAIT_COUNT 3000
 
-static int
-nfp_map_service(struct nfp_service_info *info)
-{
-	int32_t ret;
-	uint32_t slcore = 0;
-	int32_t slcore_count;
-	uint8_t service_count;
-	const char *service_name;
-	uint32_t slcore_array[RTE_MAX_LCORE];
-	uint8_t min_service_count = UINT8_MAX;
-
-	slcore_count = rte_service_lcore_list(slcore_array, RTE_MAX_LCORE);
-	if (slcore_count <= 0) {
-		PMD_DRV_LOG(DEBUG, "No service cores found");
-		return -ENOENT;
-	}
-
-	/*
-	 * Find a service core with the least number of services already
-	 * registered to it
-	 */
-	while (slcore_count--) {
-		service_count = rte_service_lcore_count_services(slcore_array[slcore_count]);
-		if (service_count < min_service_count) {
-			slcore = slcore_array[slcore_count];
-			min_service_count = service_count;
-		}
-	}
-
-	service_name = rte_service_get_name(info->id);
-	PMD_INIT_LOG(INFO, "Mapping service %s to core %u", service_name, slcore);
-
-	ret = rte_service_map_lcore_set(info->id, slcore, 1);
-	if (ret != 0) {
-		PMD_DRV_LOG(DEBUG, "Could not map flower service");
-		return -ENOENT;
-	}
-
-	rte_service_runstate_set(info->id, 1);
-	rte_service_component_runstate_set(info->id, 1);
-	rte_service_lcore_start(slcore);
-	if (rte_service_may_be_active(slcore))
-		PMD_DRV_LOG(INFO, "The service %s is running", service_name);
-	else
-		PMD_DRV_LOG(ERR, "The service %s is not running", service_name);
-
-	info->lcore = slcore;
-
-	return 0;
-}
-
 int
 nfp_service_enable(const struct rte_service_spec *service_spec,
 		struct nfp_service_info *info)
 {
 	int ret;
+	int32_t lcore_count;
+
+	lcore_count = rte_service_lcore_count();
+	if (lcore_count == 0)
+		return -ENOTSUP;
 
 	/* Register the service */
 	ret = rte_service_component_register(service_spec, &info->id);
@@ -75,12 +31,8 @@ nfp_service_enable(const struct rte_service_spec *service_spec,
 		return -EINVAL;
 	}
 
-	/* Map it to available service core */
-	ret = nfp_map_service(info);
-	if (ret != 0) {
-		PMD_DRV_LOG(DEBUG, "Could not map %s", service_spec->name);
-		return -EINVAL;
-	}
+	/* Set the NFP service runstate of a component. */
+	rte_service_component_runstate_set(info->id, 1);
 
 	PMD_DRV_LOG(DEBUG, "Enable service %s successfully", service_spec->name);
 
@@ -90,7 +42,6 @@ nfp_service_enable(const struct rte_service_spec *service_spec,
 int
 nfp_service_disable(struct nfp_service_info *info)
 {
-	int ret;
 	uint32_t i;
 	const char *service_name;
 
@@ -100,7 +51,6 @@ nfp_service_disable(struct nfp_service_info *info)
 		return -EINVAL;
 	}
 
-	rte_service_runstate_set(info->id, 0);
 	rte_service_component_runstate_set(info->id, 0);
 
 	for (i = 0; i < NFP_SERVICE_DISABLE_WAIT_COUNT; i++) {
@@ -112,12 +62,6 @@ nfp_service_disable(struct nfp_service_info *info)
 	if (i == NFP_SERVICE_DISABLE_WAIT_COUNT)
 		PMD_DRV_LOG(ERR, "Could not stop service %s", service_name);
 
-	ret = rte_service_map_lcore_set(info->id, info->lcore, 0);
-	if (ret != 0) {
-		PMD_DRV_LOG(DEBUG, "Could not unmap flower service");
-		return -ENOENT;
-	}
-
 	rte_service_component_unregister(info->id);
 
 	return 0;
diff --git a/drivers/net/nfp/nfp_service.h b/drivers/net/nfp/nfp_service.h
index 4b99d5b973..0db4f8b371 100644
--- a/drivers/net/nfp/nfp_service.h
+++ b/drivers/net/nfp/nfp_service.h
@@ -10,7 +10,6 @@
 
 struct nfp_service_info {
 	uint32_t id;
-	uint32_t lcore;
 };
 
 int nfp_service_disable(struct nfp_service_info *info);
-- 
2.39.1



More information about the dev mailing list