* [Accel-config] [PATCH v1 3/4] accel-config: New attrs to config-wq command
@ 2020-10-28 16:54 ramesh.thomas
0 siblings, 0 replies; only message in thread
From: ramesh.thomas @ 2020-10-28 16:54 UTC (permalink / raw)
To: accel-config
[-- Attachment #1: Type: text/plain, Size: 3195 bytes --]
From: Ramesh Thomas <ramesh.thomas(a)intel.com>
Added max-transfer-size and max-batch-size attrs to config-wq
command.
Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
---
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 = {
.priority = INT_MAX,
.block_on_fault = INT_MAX,
.threshold = INT_MAX,
+ .max_batch_size = INT_MAX,
+ .max_transfer_size = INT_MAX,
};
static struct engine_parameters engine_param;
@@ -131,7 +133,8 @@ static int accel_config_parse_group_attribs(struct accfg_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 = 0;
if (wq_params->mode) {
@@ -145,6 +148,8 @@ static int accel_config_parse_wq_attribs(struct accfg_device *device,
max_groups = accfg_device_get_max_groups(device);
max_wq_size = accfg_device_get_max_work_queues_size(device);
+ max_batch_size = accfg_device_get_max_batch_size(device);
+ max_transfer_size = accfg_device_get_max_transfer_size(device);
if ((wq_params->wq_size > max_wq_size)
&& (wq_params->wq_size != 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 != 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 != INT_MAX)) {
+ fprintf(stderr,
+ "valid max-transfer-size should be 1 to %ld\n", max_transfer_size);
+ return -EINVAL;
+ }
+
if (wq_params->mode) {
rc = 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 != INT_MAX) {
+ rc = accfg_wq_set_max_batch_size(wq, wq_params->max_batch_size);
+ if (rc < 0)
+ return rc;
+ }
+
+ if (wq_params->max_transfer_size != INT_MAX) {
+ rc = 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 *ctx)
"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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2020-10-28 16:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-28 16:54 [Accel-config] [PATCH v1 3/4] accel-config: New attrs to config-wq command ramesh.thomas
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.