From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6275781353883770596==" MIME-Version: 1.0 From: ramesh.thomas at intel.com Subject: [Accel-config] [PATCH v1 3/4] accel-config: New attrs to config-wq command Date: Wed, 28 Oct 2020 12:54:51 -0400 Message-ID: <20201028165452.86013-4-ramesh.thomas@intel.com> In-Reply-To: 20201028165452.86013-1-ramesh.thomas@intel.com To: accel-config@lists.01.org List-ID: --===============6275781353883770596== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Ramesh Thomas Added max-transfer-size and max-batch-size attrs to config-wq command. Signed-off-by: Ramesh Thomas --- accfg/config_attr.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/accfg/config_attr.c b/accfg/config_attr.c index 3d9669c..f7f43b1 100644 --- a/accfg/config_attr.c +++ b/accfg/config_attr.c @@ -35,6 +35,8 @@ static struct wq_parameters wq_param =3D { .priority =3D INT_MAX, .block_on_fault =3D INT_MAX, .threshold =3D INT_MAX, + .max_batch_size =3D INT_MAX, + .max_transfer_size =3D INT_MAX, }; = static struct engine_parameters engine_param; @@ -131,7 +133,8 @@ static int accel_config_parse_group_attribs(struct accf= g_group *group, static int accel_config_parse_wq_attribs(struct accfg_device *device, struct accfg_wq *wq, struct wq_parameters *wq_params) { - unsigned int max_groups, max_wq_size; + unsigned int max_groups, max_wq_size, max_batch_size; + unsigned long max_transfer_size; int rc =3D 0; = if (wq_params->mode) { @@ -145,6 +148,8 @@ static int accel_config_parse_wq_attribs(struct accfg_d= evice *device, = max_groups =3D accfg_device_get_max_groups(device); max_wq_size =3D accfg_device_get_max_work_queues_size(device); + max_batch_size =3D accfg_device_get_max_batch_size(device); + max_transfer_size =3D accfg_device_get_max_transfer_size(device); = if ((wq_params->wq_size > max_wq_size) && (wq_params->wq_size !=3D INT_MAX)) { @@ -167,6 +172,22 @@ static int accel_config_parse_wq_attribs(struct accfg_= device *device, return -EINVAL; } = + if ((wq_params->max_batch_size < 1 + || wq_params->max_batch_size > max_batch_size) + && (wq_params->max_batch_size !=3D INT_MAX)) { + fprintf(stderr, + "valid max-batch-size should be 1 to %d\n", max_batch_size); + return -EINVAL; + } + + if ((wq_params->max_transfer_size < 1 + || wq_params->max_transfer_size > max_transfer_size) + && (wq_params->max_transfer_size !=3D INT_MAX)) { + fprintf(stderr, + "valid max-transfer-size should be 1 to %ld\n", max_transfer_size); + return -EINVAL; + } + if (wq_params->mode) { rc =3D accfg_wq_set_str_mode(wq, wq_params->mode); if (rc < 0) @@ -216,6 +237,18 @@ static int accel_config_parse_wq_attribs(struct accfg_= device *device, return rc; } = + if (wq_params->max_batch_size !=3D INT_MAX) { + rc =3D accfg_wq_set_max_batch_size(wq, wq_params->max_batch_size); + if (rc < 0) + return rc; + } + + if (wq_params->max_transfer_size !=3D INT_MAX) { + rc =3D accfg_wq_set_max_transfer_size(wq, wq_params->max_transfer_size); + if (rc < 0) + return rc; + } + return 0; } = @@ -400,6 +433,10 @@ int cmd_config_wq(int argc, const char **argv, void *c= tx) "specify name by wq"), OPT_STRING('m', "mode", &wq_param.mode, "mode", "specify mode by wq"), + OPT_UINTEGER('c', "max-batch-size", &wq_param.max_batch_size, + "specify max-batch-size used by wq"), + OPT_U64('x', "max-transfer-size", &wq_param.max_transfer_size, + "specify max-transfer-size used by wq"), OPT_END(), }; = -- = 2.26.2 --===============6275781353883770596==--