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")
Fixes: 64c469b9e7d8 ("app/crypto-perf: check range of socket id")
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Ciara Power <[email protected]>
Acked-by: Kai Ji <[email protected]>
---
v2: check if socket ID equals SOCKET_ID_ANY
---
app/test-crypto-perf/main.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
index af5bd0d23b..bc1f0f9659 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
@@ -193,11 +193,10 @@ cperf_initialize_cryptodev(struct cperf_options *opts,
uint8_t *enabled_cdevs)
#endif
struct rte_cryptodev_info cdev_info;
- 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)
+ int socket_id = rte_cryptodev_socket_id(cdev_id);
+
+ /* Use the first socket if SOCKET_ID_ANY is returned. */
+ if (socket_id == SOCKET_ID_ANY)
socket_id = 0;
rte_cryptodev_info_get(cdev_id, &cdev_info);
@@ -650,7 +649,11 @@ main(int argc, char **argv)
cdev_id = enabled_cdevs[cdev_index];
- uint8_t socket_id = rte_cryptodev_socket_id(cdev_id);
+ int socket_id = rte_cryptodev_socket_id(cdev_id);
+
+ /* Use the first socket if SOCKET_ID_ANY is returned. */
+ if (socket_id == SOCKET_ID_ANY)
+ socket_id = 0;
ctx[i] = cperf_testmap[opts.test].constructor(
session_pool_socket[socket_id].sess_mp,
--
2.25.1