[dpdk-dev] [PATCH] eventdev: fix device probe and remove for secondary process
Jerin Jacob
jerinjacobk at gmail.com
Fri May 1 15:26:07 CEST 2020
On Mon, Apr 27, 2020 at 11:40 PM <pbhagavatula at marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>
> When probing event device in secondary process skip reinitializing
> the device data structure as it is already done in primary process.
>
> When removing event device in secondary process skip closing the
> event device as it should be done by primary process.
>
> Fixes: 322d0345c2bc ("eventdev: implement PMD registration functions")
Cc: stable at dpdk.org
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
Acked-by: Jerin Jacob <jerinj at marvell.com>
> ---
> lib/librte_eventdev/rte_eventdev.c | 13 ++++++++-----
> lib/librte_eventdev/rte_eventdev_pmd_pci.h | 8 +++++---
> 2 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
> index b987e0745..9aca7fbd5 100644
> --- a/lib/librte_eventdev/rte_eventdev.c
> +++ b/lib/librte_eventdev/rte_eventdev.c
> @@ -1364,14 +1364,17 @@ rte_event_pmd_allocate(const char *name, int socket_id)
>
> eventdev->data = eventdev_data;
>
> - strlcpy(eventdev->data->name, name, RTE_EVENTDEV_NAME_MAX_LEN);
> + if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
>
> - eventdev->data->dev_id = dev_id;
> - eventdev->data->socket_id = socket_id;
> - eventdev->data->dev_started = 0;
> + strlcpy(eventdev->data->name, name,
> + RTE_EVENTDEV_NAME_MAX_LEN);
>
> - eventdev->attached = RTE_EVENTDEV_ATTACHED;
> + eventdev->data->dev_id = dev_id;
> + eventdev->data->socket_id = socket_id;
> + eventdev->data->dev_started = 0;
> + }
>
> + eventdev->attached = RTE_EVENTDEV_ATTACHED;
> eventdev_globals.nb_devs++;
> }
>
> diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h
> index 8fb61386f..443cd38c2 100644
> --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h
> +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h
> @@ -112,9 +112,11 @@ rte_event_pmd_pci_remove(struct rte_pci_device *pci_dev,
> if (eventdev == NULL)
> return -ENODEV;
>
> - ret = rte_event_dev_close(eventdev->data->dev_id);
> - if (ret < 0)
> - return ret;
> + if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
> + ret = rte_event_dev_close(eventdev->data->dev_id);
> + if (ret < 0)
> + return ret;
> + }
>
> /* Invoke PMD device un-init function */
> if (devuninit)
> --
> 2.17.1
>
More information about the dev
mailing list