[dpdk-dev] [PATCH 2/2] examples/ethtool: add closing port operation
Min Hu (Connor)
humin29 at huawei.com
Thu Apr 8 12:14:48 CEST 2021
From: Huisong Li <lihuisong at huawei.com>
Currently, ethtool directly ends the process after 'quit' cmd. In this
case, software resources are not released and hardware resources of the
device are not uninstalled.
This patch adds closing port operation to release resources.
Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application")
Cc: stable at dpdk.org
Signed-off-by: Huisong Li <lihuisong at huawei.com>
Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
---
examples/ethtool/ethtool-app/main.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c
index c6023a1..adabe6e 100644
--- a/examples/ethtool/ethtool-app/main.c
+++ b/examples/ethtool/ethtool-app/main.c
@@ -256,6 +256,27 @@ static int worker_main(__rte_unused void *ptr_data)
return 0;
}
+static void close_ports(void)
+{
+ uint16_t portid;
+ int ret;
+
+ for (portid = 0; portid < app_cfg.cnt_ports; portid++) {
+ printf("Closing port %d...", portid);
+ ret = rte_eth_dev_stop(portid);
+ if (ret != 0)
+ rte_exit(EXIT_FAILURE, "rte_eth_dev_stop: err=%s, port=%u\n",
+ strerror(-ret), portid);
+ rte_eth_dev_close(portid);
+ printf(" Done\n");
+ }
+
+ ret = rte_eal_cleanup();
+ if (ret != 0)
+ rte_exit(EXIT_FAILURE, "EAL cleanup failed: %s\n",
+ strerror(-ret));
+}
+
int main(int argc, char **argv)
{
int cnt_args_parsed;
@@ -299,5 +320,7 @@ int main(int argc, char **argv)
return -1;
}
+ close_ports();
+
return 0;
}
--
2.7.4
More information about the dev
mailing list