* [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs [not found] <20200706103132.7691-1-bruce.richardson@intel.com> @ 2020-07-06 10:31 ` Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal 2020-07-07 12:18 ` [dpdk-stable] [dpdk-dev] " Thomas Monjalon 2020-07-06 10:31 ` [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user Bruce Richardson 2020-07-06 10:31 ` [dpdk-stable] [PATCH 3/3] rawdev: fix missing dump function in map file Bruce Richardson 2 siblings, 2 replies; 10+ messages in thread From: Bruce Richardson @ 2020-07-06 10:31 UTC (permalink / raw) To: nipun.gupta, hemant.agrawal; +Cc: dev, Bruce Richardson, stable To call the rte_rawdev_info_get() function, the user currently has to know the underlying type of the device in order to pass an appropriate structure or buffer as the dev_private pointer in the info structure. By allowing a NULL value for this field, we can skip getting the device-specific info and just return the generic info - including the device name and driver, which can be used to determine the device type - to the user. This ensures that basic info can be get for all rawdevs, without knowing the type, and even if the info driver API call has not been implemented for the device. Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- lib/librte_rawdev/rte_rawdev.c | 6 ++++-- lib/librte_rawdev/rte_rawdev.h | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c index aec61f425..b18638435 100644 --- a/lib/librte_rawdev/rte_rawdev.c +++ b/lib/librte_rawdev/rte_rawdev.c @@ -90,8 +90,10 @@ rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info) rawdev = &rte_rawdevs[dev_id]; - RTE_FUNC_PTR_OR_ERR_RET(*rawdev->dev_ops->dev_info_get, -ENOTSUP); - (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info->dev_private); + if (dev_info->dev_private != NULL) { + RTE_FUNC_PTR_OR_ERR_RET(*rawdev->dev_ops->dev_info_get, -ENOTSUP); + (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info->dev_private); + } if (dev_info) { diff --git a/lib/librte_rawdev/rte_rawdev.h b/lib/librte_rawdev/rte_rawdev.h index ed011ca22..7fb6cb188 100644 --- a/lib/librte_rawdev/rte_rawdev.h +++ b/lib/librte_rawdev/rte_rawdev.h @@ -77,7 +77,13 @@ struct rte_rawdev_info; * * @param[out] dev_info * A pointer to a structure of type *rte_rawdev_info* to be filled with the - * contextual information of the device. + * contextual information of the device. The dev_info->dev_private field + * should point to an appropriate buffer space for holding the device- + * specific info for that hardware. + * If the dev_private field is set to NULL, then the device-specific info + * function will not be called and only basic information about the device + * will be returned. This can be used to safely query the type of a rawdev + * instance without needing to know the size of the private data to return. * * @return * - 0: Success, driver updates the contextual information of the raw device -- 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs 2020-07-06 10:31 ` [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs Bruce Richardson @ 2020-07-07 3:40 ` Hemant Agrawal 2020-07-07 12:18 ` [dpdk-stable] [dpdk-dev] " Thomas Monjalon 1 sibling, 0 replies; 10+ messages in thread From: Hemant Agrawal @ 2020-07-07 3:40 UTC (permalink / raw) To: Bruce Richardson, Nipun Gupta; +Cc: dev, stable Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs 2020-07-06 10:31 ` [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal @ 2020-07-07 12:18 ` Thomas Monjalon 2020-07-07 12:31 ` Bruce Richardson 1 sibling, 1 reply; 10+ messages in thread From: Thomas Monjalon @ 2020-07-07 12:18 UTC (permalink / raw) To: Bruce Richardson Cc: nipun.gupta, hemant.agrawal, dev, stable, bluca, ktraynor 06/07/2020 12:31, Bruce Richardson: > To call the rte_rawdev_info_get() function, the user currently has to know > the underlying type of the device in order to pass an appropriate structure > or buffer as the dev_private pointer in the info structure. By allowing a > NULL value for this field, we can skip getting the device-specific info and > just return the generic info - including the device name and driver, which > can be used to determine the device type - to the user. > > This ensures that basic info can be get for all rawdevs, without knowing > the type, and even if the info driver API call has not been implemented for > the device. > > Cc: stable@dpdk.org This is a new feature. Why should it be backported? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs 2020-07-07 12:18 ` [dpdk-stable] [dpdk-dev] " Thomas Monjalon @ 2020-07-07 12:31 ` Bruce Richardson 0 siblings, 0 replies; 10+ messages in thread From: Bruce Richardson @ 2020-07-07 12:31 UTC (permalink / raw) To: Thomas Monjalon; +Cc: nipun.gupta, hemant.agrawal, dev, stable, bluca, ktraynor On Tue, Jul 07, 2020 at 02:18:31PM +0200, Thomas Monjalon wrote: > 06/07/2020 12:31, Bruce Richardson: > > To call the rte_rawdev_info_get() function, the user currently has to > > know the underlying type of the device in order to pass an appropriate > > structure or buffer as the dev_private pointer in the info structure. > > By allowing a NULL value for this field, we can skip getting the > > device-specific info and just return the generic info - including the > > device name and driver, which can be used to determine the device type > > - to the user. > > > > This ensures that basic info can be get for all rawdevs, without > > knowing the type, and even if the info driver API call has not been > > implemented for the device. > > > > Cc: stable@dpdk.org > > This is a new feature. Why should it be backported? > I'd largely leave it up to the stable maintainers, but IMHO it should be backported as its not a big change and I don't see the existing rawdev APIs as very usable without it. I think the current API leaves the user in a bit of a catch 22, since info_get() is the API you'd expect to call to find out the actual type of a rawdev, but unfortunately, to call the info_get API you need to know the type to pass in the appropriate type-specific structure parameter. Therefore I see this as fixing a usability bug. :-) Regards, /Bruce ^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user [not found] <20200706103132.7691-1-bruce.richardson@intel.com> 2020-07-06 10:31 ` [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs Bruce Richardson @ 2020-07-06 10:31 ` Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal 2020-07-07 12:23 ` Thomas Monjalon 2020-07-06 10:31 ` [dpdk-stable] [PATCH 3/3] rawdev: fix missing dump function in map file Bruce Richardson 2 siblings, 2 replies; 10+ messages in thread From: Bruce Richardson @ 2020-07-06 10:31 UTC (permalink / raw) To: nipun.gupta, hemant.agrawal; +Cc: dev, Bruce Richardson, stable The rawdev info struct has a socket_id field which was not filled in. We can also omit the checks for the parameter struct being null, since that is previously checked in the function. Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- lib/librte_rawdev/rte_rawdev.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c index b18638435..9ee160455 100644 --- a/lib/librte_rawdev/rte_rawdev.c +++ b/lib/librte_rawdev/rte_rawdev.c @@ -95,11 +95,9 @@ rte_rawdev_info_get(uint16_t dev_id, struct rte_rawdev_info *dev_info) (*rawdev->dev_ops->dev_info_get)(rawdev, dev_info->dev_private); } - if (dev_info) { - - dev_info->driver_name = rawdev->driver_name; - dev_info->device = rawdev->device; - } + dev_info->driver_name = rawdev->driver_name; + dev_info->device = rawdev->device; + dev_info->socket_id = rawdev->socket_id; return 0; } -- 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user 2020-07-06 10:31 ` [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user Bruce Richardson @ 2020-07-07 3:40 ` Hemant Agrawal 2020-07-07 12:23 ` Thomas Monjalon 1 sibling, 0 replies; 10+ messages in thread From: Hemant Agrawal @ 2020-07-07 3:40 UTC (permalink / raw) To: Bruce Richardson, Nipun Gupta; +Cc: dev, stable Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user 2020-07-06 10:31 ` [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal @ 2020-07-07 12:23 ` Thomas Monjalon 2020-07-07 12:33 ` Bruce Richardson 1 sibling, 1 reply; 10+ messages in thread From: Thomas Monjalon @ 2020-07-07 12:23 UTC (permalink / raw) To: Bruce Richardson; +Cc: nipun.gupta, hemant.agrawal, dev, stable 06/07/2020 12:31, Bruce Richardson: > The rawdev info struct has a socket_id field which was not filled in. > > We can also omit the checks for the parameter struct being null, since > that is previously checked in the function. > > Cc: stable@dpdk.org It looks to be a fix. Which commit introduced this bug? The original one? Fixes: c88b3f2558ed ("rawdev: introduce raw device library") ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user 2020-07-07 12:23 ` Thomas Monjalon @ 2020-07-07 12:33 ` Bruce Richardson 0 siblings, 0 replies; 10+ messages in thread From: Bruce Richardson @ 2020-07-07 12:33 UTC (permalink / raw) To: Thomas Monjalon; +Cc: nipun.gupta, hemant.agrawal, dev, stable On Tue, Jul 07, 2020 at 02:23:04PM +0200, Thomas Monjalon wrote: > 06/07/2020 12:31, Bruce Richardson: > > The rawdev info struct has a socket_id field which was not filled in. > > > > We can also omit the checks for the parameter struct being null, since > > that is previously checked in the function. > > > > Cc: stable@dpdk.org > > It looks to be a fix. > Which commit introduced this bug? The original one? > Fixes: c88b3f2558ed ("rawdev: introduce raw device library") > Yes, it can be viewed as a fix and that is the commit introducing the issue. /Bruce ^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-stable] [PATCH 3/3] rawdev: fix missing dump function in map file [not found] <20200706103132.7691-1-bruce.richardson@intel.com> 2020-07-06 10:31 ` [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs Bruce Richardson 2020-07-06 10:31 ` [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user Bruce Richardson @ 2020-07-06 10:31 ` Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal 2 siblings, 1 reply; 10+ messages in thread From: Bruce Richardson @ 2020-07-06 10:31 UTC (permalink / raw) To: nipun.gupta, hemant.agrawal; +Cc: dev, Bruce Richardson, shreyansh.jain, stable The rte_rawdev_dump function was missing from the map file, meaning it was unavailable for use when linking dynamically. Fixes: c88b3f2558ed ("rawdev: introduce raw device library") Cc: shreyansh.jain@nxp.com Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- lib/librte_rawdev/rte_rawdev_version.map | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_rawdev/rte_rawdev_version.map b/lib/librte_rawdev/rte_rawdev_version.map index d847c9e0d..63b54f598 100644 --- a/lib/librte_rawdev/rte_rawdev_version.map +++ b/lib/librte_rawdev/rte_rawdev_version.map @@ -5,6 +5,7 @@ DPDK_20.0 { rte_rawdev_configure; rte_rawdev_count; rte_rawdev_dequeue_buffers; + rte_rawdev_dump; rte_rawdev_enqueue_buffers; rte_rawdev_firmware_load; rte_rawdev_firmware_status_get; -- 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-stable] [PATCH 3/3] rawdev: fix missing dump function in map file 2020-07-06 10:31 ` [dpdk-stable] [PATCH 3/3] rawdev: fix missing dump function in map file Bruce Richardson @ 2020-07-07 3:40 ` Hemant Agrawal 0 siblings, 0 replies; 10+ messages in thread From: Hemant Agrawal @ 2020-07-07 3:40 UTC (permalink / raw) To: Bruce Richardson, Nipun Gupta; +Cc: dev, stable Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-07-07 12:33 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20200706103132.7691-1-bruce.richardson@intel.com> 2020-07-06 10:31 ` [dpdk-stable] [PATCH 1/3] rawdev: allow calling info function for unknown rawdevs Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal 2020-07-07 12:18 ` [dpdk-stable] [dpdk-dev] " Thomas Monjalon 2020-07-07 12:31 ` Bruce Richardson 2020-07-06 10:31 ` [dpdk-stable] [PATCH 2/3] rawdev: return NUMA socket id to the user Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal 2020-07-07 12:23 ` Thomas Monjalon 2020-07-07 12:33 ` Bruce Richardson 2020-07-06 10:31 ` [dpdk-stable] [PATCH 3/3] rawdev: fix missing dump function in map file Bruce Richardson 2020-07-07 3:40 ` Hemant Agrawal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).