From: Ayuj Verma Date: Wed, 24 Jul 2019 10:27:01 +0000 (+0530) Subject: test/crypto: improve asymmetric setup X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b01627d5b0ab37cc85d519250c822dc643cf5d36;p=dpdk.git test/crypto: improve asymmetric setup Improve logic: * to get list of valid devices based on driver id so that to eliminate unnecessary if check for driver id match in device loop * loop till 1st device supporting asymmetric feature is found unlike previous logic which breaks on 1st device Signed-off-by: Kanaka Durga Kotamarthy Signed-off-by: Ayuj Verma Acked-by: Akhil Goyal --- diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 95e7d34a33..e8177e73ad 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -710,9 +710,10 @@ static int testsuite_setup(void) { struct crypto_testsuite_params *ts_params = &testsuite_params; + uint8_t valid_devs[RTE_CRYPTO_MAX_DEVS]; struct rte_cryptodev_info info; - uint32_t i = 0, nb_devs, dev_id; - int ret; + int ret, dev_id = -1; + uint32_t i, nb_devs; uint16_t qp_id; memset(ts_params, 0, sizeof(*ts_params)); @@ -748,36 +749,36 @@ testsuite_setup(void) } } - nb_devs = rte_cryptodev_count(); + /* Get list of valid crypto devs */ + nb_devs = rte_cryptodev_devices_get( + rte_cryptodev_driver_name_get(gbl_driver_id), + valid_devs, RTE_CRYPTO_MAX_DEVS); if (nb_devs < 1) { RTE_LOG(ERR, USER1, "No crypto devices found?\n"); return TEST_FAILED; } - /* Create list of valid crypto devs */ - for (i = 0; i < nb_devs; i++) { - rte_cryptodev_info_get(i, &info); - if (info.driver_id == gbl_driver_id) - ts_params->valid_devs[ts_params->valid_dev_count++] = i; + /* + * Get first valid asymmetric device found in test suite param and + * break + */ + for (i = 0; i < nb_devs ; i++) { + rte_cryptodev_info_get(valid_devs[i], &info); + if (info.feature_flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) { + dev_id = ts_params->valid_devs[0] = valid_devs[i]; + break; + } } - if (ts_params->valid_dev_count < 1) - return TEST_FAILED; - - /* Set up all the qps on the first of the valid devices found */ - - dev_id = ts_params->valid_devs[0]; - - rte_cryptodev_info_get(dev_id, &info); - - /* check if device support asymmetric, skip if not */ - if (!(info.feature_flags & - RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO)) { + if (dev_id == -1) { RTE_LOG(ERR, USER1, "Device doesn't support asymmetric. " - "Test Skipped.\n"); + "Test skipped.\n"); return TEST_FAILED; } + /* Set valid device count */ + ts_params->valid_dev_count = nb_devs; + /* configure device with num qp */ ts_params->conf.nb_queue_pairs = info.max_nb_queue_pairs; ts_params->conf.socket_id = SOCKET_ID_ANY;