app/crypto-perf: fix socket ID default value
Checks
Commit Message
Due to recent changes to the default device socket ID,
before being used as an index for session mempool list,
the socket ID should be set to 0 if unknown (-1).
Fixes: 7dcd73e37965 ("drivers/bus: set device NUMA node to unknown by default")
Cc: olivier.matz@6wind.com
Cc: stable@dpdk.org
Signed-off-by: Ciara Power <ciara.power@intel.com>
---
app/test-crypto-perf/main.c | 5 +++++
1 file changed, 5 insertions(+)
Comments
Acked-by: Kai Ji <kai.ji@intel.com<mailto:kai.ji@intel.com>>
> Due to recent changes to the default device socket ID,
> before being used as an index for session mempool list,
> the socket ID should be set to 0 if unknown (-1).
>
> Fixes: 7dcd73e37965 ("drivers/bus: set device NUMA node to unknown by
> default")
> Cc: olivier.matz@6wind.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Ciara Power <ciara.power@intel.com>
> ---
> app/test-crypto-perf/main.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
> index af5bd0d23b..b74e7ba118 100644
> --- a/app/test-crypto-perf/main.c
> +++ b/app/test-crypto-perf/main.c
> @@ -651,6 +651,11 @@ main(int argc, char **argv)
> cdev_id = enabled_cdevs[cdev_index];
>
> uint8_t socket_id = rte_cryptodev_socket_id(cdev_id);
> + /* range check the socket_id, negative values become big
> + * positive ones due to use of unsigned value
> + */
> + if (socket_id >= RTE_MAX_NUMA_NODES)
> + socket_id = 0;
Shouldn't we make this as
int socket_id = rte_cryptodev_socket_id(cdev_id);
if (socket_id == SOCKET_ID_ANY)
socket_id = 0; /* Use the first socket if SOCKET_ID_ANY is returned. */
Since rte_cryptodev_socket_id returns signed value,
the application should not typecast it to unsigned value and then check for max value.
Same comment for the ipsec-secgw patch.
@@ -651,6 +651,11 @@ main(int argc, char **argv)
cdev_id = enabled_cdevs[cdev_index];
uint8_t socket_id = rte_cryptodev_socket_id(cdev_id);
+ /* range check the socket_id, negative values become big
+ * positive ones due to use of unsigned value
+ */
+ if (socket_id >= RTE_MAX_NUMA_NODES)
+ socket_id = 0;
ctx[i] = cperf_testmap[opts.test].constructor(
session_pool_socket[socket_id].sess_mp,