[dpdk-dev] [PATCH v2 3/4] raw/ifpga/base: cleanup ifpga raw devices when process quit
Ferruh Yigit
ferruh.yigit at intel.com
Thu Oct 15 20:57:22 CEST 2020
On 9/28/2020 2:40 AM, Tianfei zhang wrote:
> From: Wei Huang <wei.huang at intel.com>
>
> Add function ifpga_rawdev_cleanup() to cleanup all ifpga
> raw devices and register it as RTE_FINI function to make
> it called after main().
>
> Signed-off-by: Wei Huang <wei.huang at intel.com>
> Signed-off-by: Tianfei zhang <tianfei.zhang at intel.com>
> ---
> drivers/raw/ifpga/ifpga_rawdev.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c
> index 98b02b5fa..1bc500a2a 100644
> --- a/drivers/raw/ifpga/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga/ifpga_rawdev.c
> @@ -1609,6 +1609,26 @@ RTE_PMD_REGISTER_PCI_TABLE(ifpga_rawdev_pci_driver, rte_ifpga_rawdev_pmd);
> RTE_PMD_REGISTER_KMOD_DEP(ifpga_rawdev_pci_driver, "* igb_uio | uio_pci_generic | vfio-pci");
> RTE_LOG_REGISTER(ifpga_rawdev_logtype, driver.raw.init, NOTICE);
>
> +RTE_FINI(ifpga_rawdev_cleanup)
> +{
> + struct ifpga_rawdev *dev;
> + struct opae_adapter *adapter;
> + unsigned int i;
> +
> + for (i = 0; i < IFPGA_RAWDEV_NUM; i++) {
> + dev = &ifpga_rawdevices[i];
> + if (dev->rawdev) {
> + adapter = ifpga_rawdev_get_priv(dev->rawdev);
> + if (adapter) {
> + opae_adapter_destroy(adapter);
> + opae_adapter_data_free(adapter->data);
> + }
> + rte_rawdev_pmd_release(dev->rawdev);
> + dev->rawdev = NULL;
> + }
> + }
> +}
> +
> static const char * const valid_args[] = {
> #define IFPGA_ARG_NAME "ifpga"
> IFPGA_ARG_NAME,
>
Not sure about each driver adding destructors for cleanup, instead better to
have a proper cleanup path for application exit.
What is the motivation of the patch, does not cleaning has negative impact,
something like not able to start app again if it is not cleaned properly etc...
If there is negative impact but to be able to clean driver properly, I would
suggest doing this by improving exit path.
More information about the dev
mailing list