| 51 | } |
| 52 | |
| 53 | static int |
| 54 | mvtvm_mldev_parse_devargs(const char *args, struct mvtvm_ml_dev *mvtvm_mldev) |
| 55 | { |
| 56 | bool cache_model_data_set = false; |
| 57 | struct rte_kvargs *kvlist = NULL; |
| 58 | bool max_qps_set = false; |
| 59 | int ret = 0; |
| 60 | |
| 61 | if (args == NULL) |
| 62 | goto check_args; |
| 63 | |
| 64 | kvlist = rte_kvargs_parse(args, valid_args); |
| 65 | if (kvlist == NULL) { |
| 66 | plt_err("Error parsing %s devargs\n", "MLDEV_NAME_MVTVM_PMD"); |
| 67 | return -EINVAL; |
| 68 | } |
| 69 | |
| 70 | if (rte_kvargs_count(kvlist, MVTVM_ML_DEV_MAX_QPS) == 1) { |
| 71 | ret = rte_kvargs_process(kvlist, MVTVM_ML_DEV_MAX_QPS, &parse_uint_arg, |
| 72 | &mvtvm_mldev->max_nb_qpairs); |
| 73 | if (ret < 0) { |
| 74 | plt_err("Error processing arguments, key = %s\n", MVTVM_ML_DEV_MAX_QPS); |
| 75 | ret = -EINVAL; |
| 76 | goto exit; |
| 77 | } |
| 78 | max_qps_set = true; |
| 79 | } |
| 80 | |
| 81 | if (rte_kvargs_count(kvlist, MVTVM_ML_DEV_CACHE_MODEL_DATA) == 1) { |
| 82 | ret = rte_kvargs_process(kvlist, MVTVM_ML_DEV_CACHE_MODEL_DATA, &parse_integer_arg, |
| 83 | &mvtvm_mldev->cache_model_data); |
| 84 | if (ret < 0) { |
| 85 | plt_err("Error processing arguments, key = %s\n", |
| 86 | MVTVM_ML_DEV_CACHE_MODEL_DATA); |
| 87 | ret = -EINVAL; |
| 88 | goto exit; |
| 89 | } |
| 90 | cache_model_data_set = true; |
| 91 | } |
| 92 | |
| 93 | check_args: |
| 94 | if (!max_qps_set) |
| 95 | mvtvm_mldev->max_nb_qpairs = MVTVM_ML_DEV_MAX_QPS_DEFAULT; |
| 96 | plt_ml_dbg("ML: %s = %u", MVTVM_ML_DEV_MAX_QPS, mvtvm_mldev->max_nb_qpairs); |
| 97 | |
| 98 | if (!cache_model_data_set) { |
| 99 | mvtvm_mldev->cache_model_data = CN10K_ML_DEV_CACHE_MODEL_DATA_DEFAULT; |
| 100 | } else { |
| 101 | if ((mvtvm_mldev->cache_model_data < 0) || (mvtvm_mldev->cache_model_data > 1)) { |
| 102 | plt_err("Invalid argument, %s = %d\n", MVTVM_ML_DEV_CACHE_MODEL_DATA, |
| 103 | mvtvm_mldev->cache_model_data); |
| 104 | ret = -EINVAL; |
| 105 | goto exit; |
| 106 | } |
| 107 | } |
| 108 | plt_ml_dbg("ML: %s = %d", MVTVM_ML_DEV_CACHE_MODEL_DATA, mvtvm_mldev->cache_model_data); |
| 109 | |
| 110 | exit: |
no test coverage detected