Add new internal wrapper function for use by pci drivers as a .probe function to attach to an event interface. Same as rte_event_pmd_pci_probe, except the caller can specify the name. Updated rte_event_pmd_pci_probe so as to not duplicate code. Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> --- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 45 ++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h index a3f9244..da2b1c5 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); /** * @internal - * Wrapper for use by pci drivers as a .probe function to attach to a event - * interface. + * Wrapper for use by pci drivers as a .probe function to attach to an event + * interface. Same as rte_event_pmd_pci_probe, except caller can specify + * the name. */ static inline int -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev, - size_t private_data_size, - eventdev_pmd_pci_callback_t devinit) +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit, + const char *name) { struct rte_eventdev *eventdev; - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; - int retval; if (devinit == NULL) return -EINVAL; - rte_pci_device_name(&pci_dev->addr, eventdev_name, - sizeof(eventdev_name)); - - eventdev = rte_event_pmd_allocate(eventdev_name, + eventdev = rte_event_pmd_allocate(name, pci_dev->device.numa_node); if (eventdev == NULL) return -ENOMEM; @@ -90,6 +87,30 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, /** * @internal + * Wrapper for use by pci drivers as a .probe function to attach to a event + * interface. + */ +static inline int +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit) +{ + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; + + + rte_pci_device_name(&pci_dev->addr, eventdev_name, + sizeof(eventdev_name)); + + return rte_event_pmd_pci_probe_named(pci_drv, + pci_dev, + private_data_size, + devinit, + (const char *)eventdev_name); +} + +/** + * @internal * Wrapper for use by pci drivers as a .remove function to detach a event * interface. */ -- 2.6.4
<snip> > /** > * @internal > + * Wrapper for use by pci drivers as a .probe function to attach to a event > + * interface. > + */ > +static inline int > +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit) > +{ > + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > + > + Two blank lines -- DPDK coding style doesn't forbid this as far as I know (LINE_SPACING is ignored in checkpatch), but just an FYI in case this was unintentional. > + rte_pci_device_name(&pci_dev->addr, eventdev_name, > + sizeof(eventdev_name)); > + > + return rte_event_pmd_pci_probe_named(pci_drv, > + pci_dev, > + private_data_size, > + devinit, > + (const char *)eventdev_name); Nit: the cast is unnecessary, the conversion will happen implicitly without it. With that, Reviewed-by: Gage Eads <gage.eads@intel.com>
> -----Original Message----- > From: Eads, Gage <gage.eads@intel.com> > Sent: Monday, September 14, 2020 3:23 PM > To: McDaniel, Timothy <timothy.mcdaniel@intel.com>; Jerin Jacob > <jerinj@marvell.com> > Cc: dev@dpdk.org; Carrillo, Erik G <Erik.G.Carrillo@intel.com>; Van Haaren, > Harry <harry.van.haaren@intel.com> > Subject: RE: [PATCH] eventdev: add PCI probe named convenience function > > <snip> > > > /** > > * @internal > > + * Wrapper for use by pci drivers as a .probe function to attach to a event > > + * interface. > > + */ > > +static inline int > > +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > > + struct rte_pci_device *pci_dev, > > + size_t private_data_size, > > + eventdev_pmd_pci_callback_t devinit) > > +{ > > + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > > + > > + > > Two blank lines -- DPDK coding style doesn't forbid this as far as I know > (LINE_SPACING is ignored in checkpatch), but just an FYI in case this was > unintentional. Fixed. Will be available in V2 patch-set. > > > + rte_pci_device_name(&pci_dev->addr, eventdev_name, > > + sizeof(eventdev_name)); > > + > > + return rte_event_pmd_pci_probe_named(pci_drv, > > + pci_dev, > > + private_data_size, > > + devinit, > > + (const char *)eventdev_name); > > Nit: the cast is unnecessary, the conversion will happen implicitly without it. > Fixed. Will be available in V2 patch-set. > With that, > Reviewed-by: Gage Eads <gage.eads@intel.com>
Add new internal wrapper function for use by pci drivers as a .probe function to attach to an event interface. Same as rte_event_pmd_pci_probe, except the caller can specify the name. Updated rte_event_pmd_pci_probe so as to not duplicate code. Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> --- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 45 ++++++++++++++++++++-------- lib/librte_eventdev/rte_eventdev_version.map | 1 + 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h index a3f9244..4c215f7 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h @@ -32,28 +32,24 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); /** * @internal - * Wrapper for use by pci drivers as a .probe function to attach to a event - * interface. + * Wrapper for use by pci drivers as a .probe function to attach to an event + * interface. Same as rte_event_pmd_pci_probe, except caller can specify + * the name. */ static inline int -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev, - size_t private_data_size, - eventdev_pmd_pci_callback_t devinit) +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit, + const char *name) { struct rte_eventdev *eventdev; - - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; - int retval; if (devinit == NULL) return -EINVAL; - rte_pci_device_name(&pci_dev->addr, eventdev_name, - sizeof(eventdev_name)); - - eventdev = rte_event_pmd_allocate(eventdev_name, + eventdev = rte_event_pmd_allocate(name, pci_dev->device.numa_node); if (eventdev == NULL) return -ENOMEM; @@ -90,6 +86,29 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, /** * @internal + * Wrapper for use by pci drivers as a .probe function to attach to a event + * interface. + */ +static inline int +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit) +{ + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; + + rte_pci_device_name(&pci_dev->addr, eventdev_name, + sizeof(eventdev_name)); + + return rte_event_pmd_pci_probe_named(pci_drv, + pci_dev, + private_data_size, + devinit, + eventdev_name); +} + +/** + * @internal * Wrapper for use by pci drivers as a .remove function to detach a event * interface. */ diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map index 2846d04..88fb2bd 100644 --- a/lib/librte_eventdev/rte_eventdev_version.map +++ b/lib/librte_eventdev/rte_eventdev_version.map @@ -57,6 +57,7 @@ DPDK_21 { rte_event_eth_tx_adapter_stop; rte_event_pmd_allocate; rte_event_pmd_pci_probe; + rte_event_pmd_pci_probe_named; rte_event_pmd_pci_remove; rte_event_pmd_release; rte_event_pmd_vdev_init; -- 2.6.4
Add new internal wrapper function for use by pci drivers as a .probe function to attach to an event interface. Same as rte_event_pmd_pci_probe, except the caller can specify the name. Updated rte_event_pmd_pci_probe so as to not duplicate code. Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> --- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 46 ++++++++++++++++++++-------- lib/librte_eventdev/rte_eventdev_version.map | 2 ++ 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h index a3f9244..5f238bf 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); /** * @internal - * Wrapper for use by pci drivers as a .probe function to attach to a event - * interface. + * Wrapper for use by pci drivers as a .probe function to attach to an event + * interface. Same as rte_event_pmd_pci_probe, except caller can specify + * the name. */ +__rte_experimental static inline int -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev, - size_t private_data_size, - eventdev_pmd_pci_callback_t devinit) +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit, + const char *name) { struct rte_eventdev *eventdev; - - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; - int retval; if (devinit == NULL) return -EINVAL; - rte_pci_device_name(&pci_dev->addr, eventdev_name, - sizeof(eventdev_name)); - - eventdev = rte_event_pmd_allocate(eventdev_name, + eventdev = rte_event_pmd_allocate(name, pci_dev->device.numa_node); if (eventdev == NULL) return -ENOMEM; @@ -90,6 +87,29 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, /** * @internal + * Wrapper for use by pci drivers as a .probe function to attach to a event + * interface. + */ +static inline int +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit) +{ + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; + + rte_pci_device_name(&pci_dev->addr, eventdev_name, + sizeof(eventdev_name)); + + return rte_event_pmd_pci_probe_named(pci_drv, + pci_dev, + private_data_size, + devinit, + eventdev_name); +} + +/** + * @internal * Wrapper for use by pci drivers as a .remove function to detach a event * interface. */ diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map index 2846d04..8ae8420 100644 --- a/lib/librte_eventdev/rte_eventdev_version.map +++ b/lib/librte_eventdev/rte_eventdev_version.map @@ -136,4 +136,6 @@ EXPERIMENTAL { # changed in 20.11 __rte_eventdev_trace_port_setup; + # added in 20.11 + rte_event_pmd_pci_probe_named; }; -- 2.6.4
On Tue, Oct 13, 2020 at 12:29 AM Timothy McDaniel <timothy.mcdaniel@intel.com> wrote: > > Add new internal wrapper function for use by pci drivers as a > .probe function to attach to an event interface. Same as > rte_event_pmd_pci_probe, except the caller can specify the name. > > Updated rte_event_pmd_pci_probe so as to not duplicate > code. > > Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> Latest patch is missing the updated version(v3) in patch commit[1] [1] http://patches.dpdk.org/patch/80394/ Also, it has apply issue[2] and builds issue in CI[3]. Please send the v4 for fix. [2] [for-main]dell[dpdk-next-eventdev] $ git am -3 /tmp/r/eventdev-add-PCI-probe-named-convenience-function Applying: eventdev: add PCI probe named convenience function error: sha1 information is lacking or useless (lib/librte_eventdev/rte_eventdev_pmd_pci.h). error: could not build fake ancestor Patch failed at 0001 eventdev: add PCI probe named convenience function hint: Use 'git am --show-current-patch=diff' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". [for-main]dell[dpdk-next-eventdev] $ [3] http://mails.dpdk.org/archives/test-report/2020-October/158330.html > --- > lib/librte_eventdev/rte_eventdev_pmd_pci.h | 46 ++++++++++++++++++++-------- > lib/librte_eventdev/rte_eventdev_version.map | 2 ++ > 2 files changed, 35 insertions(+), 13 deletions(-) > > diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h > index a3f9244..5f238bf 100644 > --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h > +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h > @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); > > /** > * @internal > - * Wrapper for use by pci drivers as a .probe function to attach to a event > - * interface. > + * Wrapper for use by pci drivers as a .probe function to attach to an event > + * interface. Same as rte_event_pmd_pci_probe, except caller can specify > + * the name. > */ > +__rte_experimental > static inline int > -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > - struct rte_pci_device *pci_dev, > - size_t private_data_size, > - eventdev_pmd_pci_callback_t devinit) > +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit, > + const char *name) > { > struct rte_eventdev *eventdev; > - > - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > - > int retval; > > if (devinit == NULL) > return -EINVAL; > > - rte_pci_device_name(&pci_dev->addr, eventdev_name, > - sizeof(eventdev_name)); > - > - eventdev = rte_event_pmd_allocate(eventdev_name, > + eventdev = rte_event_pmd_allocate(name, > pci_dev->device.numa_node); > if (eventdev == NULL) > return -ENOMEM; > @@ -90,6 +87,29 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > > /** > * @internal > + * Wrapper for use by pci drivers as a .probe function to attach to a event > + * interface. > + */ > +static inline int > +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit) > +{ > + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > + > + rte_pci_device_name(&pci_dev->addr, eventdev_name, > + sizeof(eventdev_name)); > + > + return rte_event_pmd_pci_probe_named(pci_drv, > + pci_dev, > + private_data_size, > + devinit, > + eventdev_name); > +} > + > +/** > + * @internal > * Wrapper for use by pci drivers as a .remove function to detach a event > * interface. > */ > diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map > index 2846d04..8ae8420 100644 > --- a/lib/librte_eventdev/rte_eventdev_version.map > +++ b/lib/librte_eventdev/rte_eventdev_version.map > @@ -136,4 +136,6 @@ EXPERIMENTAL { > > # changed in 20.11 > __rte_eventdev_trace_port_setup; > + # added in 20.11 > + rte_event_pmd_pci_probe_named; > }; > -- > 2.6.4 >
On 12/10/2020 19:42, Timothy McDaniel wrote: > Add new internal wrapper function for use by pci drivers as a > .probe function to attach to an event interface. Same as > rte_event_pmd_pci_probe, except the caller can specify the name. > > Updated rte_event_pmd_pci_probe so as to not duplicate > code. Any reason why this couldn't be __rte_internal then ? > > Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> > --- > lib/librte_eventdev/rte_eventdev_pmd_pci.h | 45 ++++++++++++++++++++-------- > lib/librte_eventdev/rte_eventdev_version.map | 1 + > 2 files changed, 33 insertions(+), 13 deletions(-) > > diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h > index a3f9244..4c215f7 100644 > --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h > +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h > @@ -32,28 +32,24 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); > > /** > * @internal > - * Wrapper for use by pci drivers as a .probe function to attach to a event > - * interface. > + * Wrapper for use by pci drivers as a .probe function to attach to an event > + * interface. Same as rte_event_pmd_pci_probe, except caller can specify > + * the name. > */ > static inline int > -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > - struct rte_pci_device *pci_dev, > - size_t private_data_size, > - eventdev_pmd_pci_callback_t devinit) > +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit, > + const char *name) > { > struct rte_eventdev *eventdev; > - > - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > - > int retval; > > if (devinit == NULL) > return -EINVAL; > > - rte_pci_device_name(&pci_dev->addr, eventdev_name, > - sizeof(eventdev_name)); > - > - eventdev = rte_event_pmd_allocate(eventdev_name, > + eventdev = rte_event_pmd_allocate(name, > pci_dev->device.numa_node); > if (eventdev == NULL) > return -ENOMEM; > @@ -90,6 +86,29 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > > /** > * @internal > + * Wrapper for use by pci drivers as a .probe function to attach to a event > + * interface. > + */ > +static inline int > +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit) > +{ > + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > + > + rte_pci_device_name(&pci_dev->addr, eventdev_name, > + sizeof(eventdev_name)); > + > + return rte_event_pmd_pci_probe_named(pci_drv, > + pci_dev, > + private_data_size, > + devinit, > + eventdev_name); > +} > + > +/** > + * @internal > * Wrapper for use by pci drivers as a .remove function to detach a event > * interface. > */ > diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map > index 2846d04..88fb2bd 100644 > --- a/lib/librte_eventdev/rte_eventdev_version.map > +++ b/lib/librte_eventdev/rte_eventdev_version.map > @@ -57,6 +57,7 @@ DPDK_21 { > rte_event_eth_tx_adapter_stop; > rte_event_pmd_allocate; > rte_event_pmd_pci_probe; > + rte_event_pmd_pci_probe_named; > rte_event_pmd_pci_remove; > rte_event_pmd_release; > rte_event_pmd_vdev_init; >
> -----Original Message-----
> From: Kinsella, Ray <mdr@ashroe.eu>
> Sent: Wednesday, October 14, 2020 4:31 AM
> To: McDaniel, Timothy <timothy.mcdaniel@intel.com>; Jerin Jacob
> <jerinj@marvell.com>; Neil Horman <nhorman@tuxdriver.com>
> Cc: dev@dpdk.org; Carrillo, Erik G <erik.g.carrillo@intel.com>; Eads, Gage
> <gage.eads@intel.com>; Van Haaren, Harry <harry.van.haaren@intel.com>
> Subject: Re: [PATCH] eventdev: add PCI probe named convenience function
>
>
>
> On 12/10/2020 19:42, Timothy McDaniel wrote:
> > Add new internal wrapper function for use by pci drivers as a
> > .probe function to attach to an event interface. Same as
> > rte_event_pmd_pci_probe, except the caller can specify the name.
> >
> > Updated rte_event_pmd_pci_probe so as to not duplicate
> > code.
>
> Any reason why this couldn't be __rte_internal then ?
On a related note...should a static function defined in an internal header file
be included the version.map file? Doesn't that only pertain to symbols in the
.so? Probably harmless if so, but now may be a good time to correct it.
Thanks,
Gage
Add new internal wrapper function for use by pci drivers as a .probe function to attach to an event interface. Same as rte_event_pmd_pci_probe, except the caller can specify the name. Updated rte_event_pmd_pci_probe so as to not duplicate code. Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> Reviewed-by: Gage Eads <gage.eads at intel.com> --- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 46 ++++++++++++++++++++-------- lib/librte_eventdev/rte_eventdev_version.map | 2 ++ 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h index a3f9244..5f238bf 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); /** * @internal - * Wrapper for use by pci drivers as a .probe function to attach to a event - * interface. + * Wrapper for use by pci drivers as a .probe function to attach to an event + * interface. Same as rte_event_pmd_pci_probe, except caller can specify + * the name. */ +__rte_experimental static inline int -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev, - size_t private_data_size, - eventdev_pmd_pci_callback_t devinit) +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit, + const char *name) { struct rte_eventdev *eventdev; - - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; - int retval; if (devinit == NULL) return -EINVAL; - rte_pci_device_name(&pci_dev->addr, eventdev_name, - sizeof(eventdev_name)); - - eventdev = rte_event_pmd_allocate(eventdev_name, + eventdev = rte_event_pmd_allocate(name, pci_dev->device.numa_node); if (eventdev == NULL) return -ENOMEM; @@ -90,6 +87,29 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, /** * @internal + * Wrapper for use by pci drivers as a .probe function to attach to a event + * interface. + */ +static inline int +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit) +{ + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; + + rte_pci_device_name(&pci_dev->addr, eventdev_name, + sizeof(eventdev_name)); + + return rte_event_pmd_pci_probe_named(pci_drv, + pci_dev, + private_data_size, + devinit, + eventdev_name); +} + +/** + * @internal * Wrapper for use by pci drivers as a .remove function to detach a event * interface. */ diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map index 2846d04..8ae8420 100644 --- a/lib/librte_eventdev/rte_eventdev_version.map +++ b/lib/librte_eventdev/rte_eventdev_version.map @@ -136,4 +136,6 @@ EXPERIMENTAL { # changed in 20.11 __rte_eventdev_trace_port_setup; + # added in 20.11 + rte_event_pmd_pci_probe_named; }; -- 2.6.4
Add new internal wrapper function for use by pci drivers as a .probe function to attach to an event interface. Same as rte_event_pmd_pci_probe, except the caller can specify the name. Updated rte_event_pmd_pci_probe so as to not duplicate code. Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> Reviewed-by: Gage Eads <gage.eads@intel.com> --- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 46 ++++++++++++++++++++-------- lib/librte_eventdev/rte_eventdev_version.map | 2 ++ 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h index a3f9244..5f238bf 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); /** * @internal - * Wrapper for use by pci drivers as a .probe function to attach to a event - * interface. + * Wrapper for use by pci drivers as a .probe function to attach to an event + * interface. Same as rte_event_pmd_pci_probe, except caller can specify + * the name. */ +__rte_experimental static inline int -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev, - size_t private_data_size, - eventdev_pmd_pci_callback_t devinit) +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit, + const char *name) { struct rte_eventdev *eventdev; - - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; - int retval; if (devinit == NULL) return -EINVAL; - rte_pci_device_name(&pci_dev->addr, eventdev_name, - sizeof(eventdev_name)); - - eventdev = rte_event_pmd_allocate(eventdev_name, + eventdev = rte_event_pmd_allocate(name, pci_dev->device.numa_node); if (eventdev == NULL) return -ENOMEM; @@ -90,6 +87,29 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, /** * @internal + * Wrapper for use by pci drivers as a .probe function to attach to a event + * interface. + */ +static inline int +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit) +{ + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; + + rte_pci_device_name(&pci_dev->addr, eventdev_name, + sizeof(eventdev_name)); + + return rte_event_pmd_pci_probe_named(pci_drv, + pci_dev, + private_data_size, + devinit, + eventdev_name); +} + +/** + * @internal * Wrapper for use by pci drivers as a .remove function to detach a event * interface. */ diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map index 2846d04..8ae8420 100644 --- a/lib/librte_eventdev/rte_eventdev_version.map +++ b/lib/librte_eventdev/rte_eventdev_version.map @@ -136,4 +136,6 @@ EXPERIMENTAL { # changed in 20.11 __rte_eventdev_trace_port_setup; + # added in 20.11 + rte_event_pmd_pci_probe_named; }; -- 2.6.4
Add new internal wrapper function for use by pci drivers as a .probe function to attach to an event interface. Same as rte_event_pmd_pci_probe, except the caller can specify the name. Updated rte_event_pmd_pci_probe so as to not duplicate code. Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> Reviewed-by: Gage Eads <gage.eads@intel.com> --- lib/librte_eventdev/rte_eventdev_pmd_pci.h | 45 ++++++++++++++++++++-------- lib/librte_eventdev/rte_eventdev_version.map | 3 ++ 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h index 443cd38..5f238bf 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); /** * @internal - * Wrapper for use by pci drivers as a .probe function to attach to a event - * interface. + * Wrapper for use by pci drivers as a .probe function to attach to an event + * interface. Same as rte_event_pmd_pci_probe, except caller can specify + * the name. */ +__rte_experimental static inline int -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, - struct rte_pci_device *pci_dev, - size_t private_data_size, - eventdev_pmd_pci_callback_t devinit) +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit, + const char *name) { struct rte_eventdev *eventdev; - - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; - int retval; if (devinit == NULL) return -EINVAL; - rte_pci_device_name(&pci_dev->addr, eventdev_name, - sizeof(eventdev_name)); - - eventdev = rte_event_pmd_allocate(eventdev_name, + eventdev = rte_event_pmd_allocate(name, pci_dev->device.numa_node); if (eventdev == NULL) return -ENOMEM; @@ -88,6 +85,28 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, return -ENXIO; } +/** + * @internal + * Wrapper for use by pci drivers as a .probe function to attach to a event + * interface. + */ +static inline int +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, + struct rte_pci_device *pci_dev, + size_t private_data_size, + eventdev_pmd_pci_callback_t devinit) +{ + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; + + rte_pci_device_name(&pci_dev->addr, eventdev_name, + sizeof(eventdev_name)); + + return rte_event_pmd_pci_probe_named(pci_drv, + pci_dev, + private_data_size, + devinit, + eventdev_name); +} /** * @internal diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map index 3d9d0ca..88a3b6c 100644 --- a/lib/librte_eventdev/rte_eventdev_version.map +++ b/lib/librte_eventdev/rte_eventdev_version.map @@ -134,4 +134,7 @@ EXPERIMENTAL { __rte_eventdev_trace_crypto_adapter_queue_pair_del; __rte_eventdev_trace_crypto_adapter_start; __rte_eventdev_trace_crypto_adapter_stop; + + # added in 20.11 + rte_event_pmd_pci_probe_named; }; -- 2.6.4
On Thu, Oct 15, 2020 at 7:45 PM Timothy McDaniel <timothy.mcdaniel@intel.com> wrote: > > Add new internal wrapper function for use by pci drivers as a > .probe function to attach to an event interface. Same as > rte_event_pmd_pci_probe, except the caller can specify the name. > > Updated rte_event_pmd_pci_probe so as to not duplicate > code. > > Signed-off-by: Timothy McDaniel <timothy.mcdaniel@intel.com> > Reviewed-by: Gage Eads <gage.eads@intel.com> Applied to dpdk-next-eventdev/for-main. Thanks. > --- > lib/librte_eventdev/rte_eventdev_pmd_pci.h | 45 ++++++++++++++++++++-------- > lib/librte_eventdev/rte_eventdev_version.map | 3 ++ > 2 files changed, 35 insertions(+), 13 deletions(-) > > diff --git a/lib/librte_eventdev/rte_eventdev_pmd_pci.h b/lib/librte_eventdev/rte_eventdev_pmd_pci.h > index 443cd38..5f238bf 100644 > --- a/lib/librte_eventdev/rte_eventdev_pmd_pci.h > +++ b/lib/librte_eventdev/rte_eventdev_pmd_pci.h > @@ -32,28 +32,25 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); > > /** > * @internal > - * Wrapper for use by pci drivers as a .probe function to attach to a event > - * interface. > + * Wrapper for use by pci drivers as a .probe function to attach to an event > + * interface. Same as rte_event_pmd_pci_probe, except caller can specify > + * the name. > */ > +__rte_experimental > static inline int > -rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > - struct rte_pci_device *pci_dev, > - size_t private_data_size, > - eventdev_pmd_pci_callback_t devinit) > +rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit, > + const char *name) > { > struct rte_eventdev *eventdev; > - > - char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > - > int retval; > > if (devinit == NULL) > return -EINVAL; > > - rte_pci_device_name(&pci_dev->addr, eventdev_name, > - sizeof(eventdev_name)); > - > - eventdev = rte_event_pmd_allocate(eventdev_name, > + eventdev = rte_event_pmd_allocate(name, > pci_dev->device.numa_node); > if (eventdev == NULL) > return -ENOMEM; > @@ -88,6 +85,28 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > return -ENXIO; > } > > +/** > + * @internal > + * Wrapper for use by pci drivers as a .probe function to attach to a event > + * interface. > + */ > +static inline int > +rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, > + struct rte_pci_device *pci_dev, > + size_t private_data_size, > + eventdev_pmd_pci_callback_t devinit) > +{ > + char eventdev_name[RTE_EVENTDEV_NAME_MAX_LEN]; > + > + rte_pci_device_name(&pci_dev->addr, eventdev_name, > + sizeof(eventdev_name)); > + > + return rte_event_pmd_pci_probe_named(pci_drv, > + pci_dev, > + private_data_size, > + devinit, > + eventdev_name); > +} > > /** > * @internal > diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map > index 3d9d0ca..88a3b6c 100644 > --- a/lib/librte_eventdev/rte_eventdev_version.map > +++ b/lib/librte_eventdev/rte_eventdev_version.map > @@ -134,4 +134,7 @@ EXPERIMENTAL { > __rte_eventdev_trace_crypto_adapter_queue_pair_del; > __rte_eventdev_trace_crypto_adapter_start; > __rte_eventdev_trace_crypto_adapter_stop; > + > + # added in 20.11 > + rte_event_pmd_pci_probe_named; > }; > -- > 2.6.4 >
On 14/10/2020 16:37, Eads, Gage wrote: > > >> -----Original Message----- >> From: Kinsella, Ray <mdr@ashroe.eu> >> Sent: Wednesday, October 14, 2020 4:31 AM >> To: McDaniel, Timothy <timothy.mcdaniel@intel.com>; Jerin Jacob >> <jerinj@marvell.com>; Neil Horman <nhorman@tuxdriver.com> >> Cc: dev@dpdk.org; Carrillo, Erik G <erik.g.carrillo@intel.com>; Eads, Gage >> <gage.eads@intel.com>; Van Haaren, Harry <harry.van.haaren@intel.com> >> Subject: Re: [PATCH] eventdev: add PCI probe named convenience function >> >> >> >> On 12/10/2020 19:42, Timothy McDaniel wrote: >>> Add new internal wrapper function for use by pci drivers as a >>> .probe function to attach to an event interface. Same as >>> rte_event_pmd_pci_probe, except the caller can specify the name. >>> >>> Updated rte_event_pmd_pci_probe so as to not duplicate >>> code. >> >> Any reason why this couldn't be __rte_internal then ? > > On a related note...should a static function defined in an internal header file > be included the version.map file? Doesn't that only pertain to symbols in the > .so? Probably harmless if so, but now may be a good time to correct it. Good catch. > Thanks, > Gage >