On 7/7/22 10:13 AM, Chautru, Nicolas wrote:
Hi Tom,
-----Original Message-----
From: Tom Rix <t...@redhat.com>
Sent: Thursday, July 7, 2022 6:34 AM
To: Chautru, Nicolas <nicolas.chau...@intel.com>; dev@dpdk.org;
tho...@monjalon.net; gak...@marvell.com; hemant.agra...@nxp.com
Cc: maxime.coque...@redhat.com; m...@ashroe.eu; Richardson, Bruce
<bruce.richard...@intel.com>; david.march...@redhat.com;
step...@networkplumber.org
Subject: Re: [PATCH v4 3/7] bbdev: add device info on queue topology
On 7/6/22 2:12 PM, Chautru, Nicolas wrote:
Hi Tom,
-----Original Message-----
From: Tom Rix <t...@redhat.com>
Subject: Re: [PATCH v4 3/7] bbdev: add device info on queue topology
On 7/5/22 5:23 PM, Nicolas Chautru wrote:
Adding more options in the API to expose the number of queues
exposed and related priority.
Signed-off-by: Nicolas Chautru <nicolas.chau...@intel.com>
---
lib/bbdev/rte_bbdev.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h index
9b1ffa4..ac941d6 100644
--- a/lib/bbdev/rte_bbdev.h
+++ b/lib/bbdev/rte_bbdev.h
@@ -289,6 +289,10 @@ struct rte_bbdev_driver_info {
/** Maximum number of queues supported by the device */
unsigned int max_num_queues;
+ /** Maximum number of queues supported per operation type */
+ unsigned int num_queues[RTE_BBDEV_OP_TYPE_PADDED_MAX];
+ /** Priority level supported per operation type */
+ unsigned int queue_priority[RTE_BBDEV_OP_TYPE_PADDED_MAX];
It is better to add new elements to the end of a structure for better
backward compatibility
All that serie is not ABI compatible (sizes change etc...). I don’t believe
there
is such a recommendation, is there?
Depends on what users expect, a dynamically linked old application would at
best core here. If the elements were added to the end, yes the size would
change but the old dynamically linked application would not use
them. Dynamically linking is nice because problems in the library can be fixed
and shipped without forcing the user recompile. Though the user may not
realize it, this change forces them to recompile.
Tom
Thanks Tom. In that very context, the change are big enough not to have any
form of compatibility. This a new ABI version, and user knows they will have to
recompile.
Still it would be great to capture a recommendation in DPDK coding guideline in
case there is such a BKM, I have heard multiple arguments for different
preference, if we want to harmonize such things let's capture in coding guide
lines, it would not hurt. Maybe one for Thomas?
When sw is deployed, how would a user know ?
For that matter, how would a developer know without a deep reading of
header files ?
I am not asking for a compatibility testsuite here, just the placement
of new elements (the same code) at the end of structures. As a library
writer, please consider the users of the library. Your improvements are
amplified by all of the library's users. The user's code quality is
based on this library's code quality.
My expectation is a new ABI introduces new functionality without
breaking old binaries. Or if it does, it is for a good reason.
There is no good reason for putting new elements into the middle of an
existing structure.
Tom
Tom
/** Queue size limit (queue size must also be power of 2) */
uint32_t queue_size_lim;
/** Set if device off-loads operation to hardware */