[dpdk-dev] [PATCH] eventdev: fix device probe and remove for secondary process

Jerin Jacob jerinjacobk at gmail.com
Sat May 2 12:31:54 CEST 2020


On Fri, May 1, 2020 at 6:56 PM Jerin Jacob <jerinjacobk at gmail.com> wrote:
>
> 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>


Applied to dpdk-next-eventdev/master. Thanks.


>
>
>
> > ---
> >  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