* [Accel-config] Re: [PATCH v2] accel-config/libaccel-config: Add IAX support
@ 2020-11-18 20:46 Jiang, Dave
0 siblings, 0 replies; only message in thread
From: Jiang, Dave @ 2020-11-18 20:46 UTC (permalink / raw)
To: accel-config
[-- Attachment #1: Type: text/plain, Size: 6742 bytes --]
> -----Original Message-----
> From: ramesh.thomas(a)intel.com <ramesh.thomas(a)intel.com>
> Sent: Wednesday, November 18, 2020 1:40 PM
> To: accel-config(a)lists.01.org
> Cc: Thomas, Ramesh <ramesh.thomas(a)intel.com>; Luck, Tony
> <tony.luck(a)intel.com>; Jiang, Dave <dave.jiang(a)intel.com>; Zhu, Tony
> <tony.zhu(a)intel.com>
> Subject: [PATCH v2] accel-config/libaccel-config: Add IAX support
>
> From: Ramesh Thomas <ramesh.thomas(a)intel.com>
>
> Add Intel Analytics Accelerator support.
>
> Changes in v2:
> - block on fault is available for IAX
>
> Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
> Signed-off-by: Dave Jiang <dave.jiang(a)intel.com>
> ---
> accfg/config.c | 10 ++++++++++
> accfg/lib/libaccfg.c | 3 +++
> accfg/libaccel_config.h | 1 +
> accfg/list.c | 31 +++++++++++++++++++------------
> util/json.c | 16 ++++++++++++----
> 5 files changed, 45 insertions(+), 16 deletions(-)
>
> diff --git a/accfg/config.c b/accfg/config.c index 3887873..d36f1d9 100644
> --- a/accfg/config.c
> +++ b/accfg/config.c
> @@ -296,6 +296,10 @@ static int group_json_set_val(struct accfg_group
> *group,
> json_object *jobj, char *key)
> {
> int rc, i;
> + struct accfg_device *dev = NULL;
> +
> + if (group)
> + dev = accfg_group_get_device(group);
>
> if (!group || !jobj || !key)
> return -EINVAL;
> @@ -311,6 +315,12 @@ static int group_json_set_val(struct accfg_group
> *group,
> || (val < 0))
> return -EINVAL;
>
> + if ((accfg_device_get_type(dev) ==
> ACCFG_DEVICE_IAX)
> + && ((!strcmp(group_table[i].name,
> "tokens_reserved"))
> + || (!strcmp(group_table[i].name,
> "use_token_limit"))
> + || (!strcmp(group_table[i].name,
> "tokens_allowed")))) {
> + return 0;
> + }
> if (group_table[i].is_writable &&
> !group_table[i].is_writable(group,
> val))
> diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c index 70553f7..cd9da42
> 100644
> --- a/accfg/lib/libaccfg.c
> +++ b/accfg/lib/libaccfg.c
> @@ -39,6 +39,7 @@ static int filename_prefix_len;
>
> ACCFG_EXPORT char *accfg_basenames[] = {
> [ACCFG_DEVICE_DSA] = "dsa",
> + [ACCFG_DEVICE_IAX] = "iax",
> NULL
> };
>
> @@ -397,6 +398,8 @@ static int device_parse_type(struct accfg_device
> *device)
>
> if (!strcmp(device->device_type_str, "dsa"))
> device->type = ACCFG_DEVICE_DSA;
> + else if (!strcmp(device->device_type_str, "iax"))
> + device->type = ACCFG_DEVICE_IAX;
> else
> device->type = ACCFG_DEVICE_TYPE_UNKNOWN;
>
> diff --git a/accfg/libaccel_config.h b/accfg/libaccel_config.h index
> 392188e..f85670c 100644
> --- a/accfg/libaccel_config.h
> +++ b/accfg/libaccel_config.h
> @@ -31,6 +31,7 @@ extern "C" {
> /* no need to save device state */
> enum accfg_device_type {
> ACCFG_DEVICE_DSA = 0,
> + ACCFG_DEVICE_IAX = 1,
> ACCFG_DEVICE_TYPE_UNKNOWN = -1,
> };
>
> diff --git a/accfg/list.c b/accfg/list.c index dfaac1f..c22da41 100644
> --- a/accfg/list.c
> +++ b/accfg/list.c
> @@ -54,6 +54,10 @@ static struct json_object *group_to_json(struct
> accfg_group *group, {
> struct json_object *jgroup = json_object_new_object();
> struct json_object *jobj = NULL;
> + struct accfg_device *dev = NULL;
> +
> + if (group)
> + dev = accfg_group_get_device(group);
>
> if (!jgroup)
> return NULL;
> @@ -67,20 +71,23 @@ static struct json_object *group_to_json(struct
> accfg_group *group,
> if (!jobj)
> goto err;
>
> - json_object_object_add(jgroup, "tokens_reserved", jobj);
> - jobj =
> json_object_new_int(accfg_group_get_use_token_limit(group));
> - if (!jobj)
> - goto err;
> + if (accfg_device_get_type(dev) != ACCFG_DEVICE_IAX) {
> + json_object_object_add(jgroup, "tokens_reserved", jobj);
> + jobj =
> json_object_new_int(accfg_group_get_use_token_limit(group));
> + if (!jobj)
> + goto err;
>
> - json_object_object_add(jgroup, "use_token_limit", jobj);
> - jobj =
> json_object_new_int(accfg_group_get_tokens_allowed(group));
> - if (!jobj)
> - goto err;
> + json_object_object_add(jgroup, "use_token_limit", jobj);
> + jobj =
> json_object_new_int(accfg_group_get_tokens_allowed(group));
> + if (!jobj)
> + goto err;
>
> - json_object_object_add(jgroup, "tokens_allowed", jobj);
> - jobj =
> json_object_new_int(accfg_group_get_traffic_class_a(group));
> - if (!jobj)
> - goto err;
> + json_object_object_add(jgroup, "tokens_allowed", jobj);
> + jobj =
> json_object_new_int(accfg_group_get_traffic_class_a(
> + group));
> + if (!jobj)
> + goto err;
> + }
>
> json_object_object_add(jgroup, "traffic_class_a", jobj);
> jobj = json_object_new_int(accfg_group_get_traffic_class_b(
> diff --git a/util/json.c b/util/json.c
> index 3bf8950..bb3ee88 100644
> --- a/util/json.c
> +++ b/util/json.c
> @@ -178,7 +178,8 @@ struct json_object *util_device_to_json(struct
> accfg_device *device,
> jobj = json_object_new_int(accfg_device_get_token_limit(device));
> if (!jobj)
> goto err;
> - json_object_object_add(jdevice, "token_limit", jobj);
> + if (accfg_device_get_type(device) != ACCFG_DEVICE_IAX)
> + json_object_object_add(jdevice, "token_limit", jobj);
>
> if (flags & UTIL_JSON_SAVE) {
> free(error);
> @@ -277,7 +278,8 @@ struct json_object *util_device_to_json(struct
> accfg_device *device,
> jobj =
> json_object_new_int(accfg_device_get_max_tokens(device));
> if (!jobj)
> goto err;
> - json_object_object_add(jdevice, "max_tokens", jobj);
> + if (accfg_device_get_type(device) != ACCFG_DEVICE_IAX)
> + json_object_object_add(jdevice, "max_tokens", jobj);
>
> ulong_val = accfg_device_get_max_batch_size(device);
> if (ulong_val > 0) {
> @@ -353,8 +355,12 @@ struct json_object *util_wq_to_json(struct
> accfg_wq *wq,
> unsigned long size = ULLONG_MAX;
> enum accfg_wq_mode wq_mode;
> enum accfg_wq_state wq_state;
> + struct accfg_device *dev = NULL;
> int int_val;
>
> + if (wq)
> + dev = accfg_wq_get_device(wq);
> +
> if (!jaccfg)
> return NULL;
>
> @@ -396,8 +402,10 @@ struct json_object *util_wq_to_json(struct
> accfg_wq *wq,
> }
>
> jobj = json_object_new_int(accfg_wq_get_block_on_fault(wq));
> - if (jobj)
> - json_object_object_add(jaccfg, "block_on_fault", jobj);
> + if (jobj) {
> + if (accfg_device_get_type(dev) != ACCFG_DEVICE_IAX)
> + json_object_object_add(jaccfg, "block_on_fault",
> jobj);
> + }
Ooops. Missed this one. Otherwise looks good.
>
> jobj = json_object_new_int(accfg_wq_get_max_batch_size(wq));
> if (jobj)
> --
> 2.26.2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-11-18 20:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-18 20:46 [Accel-config] Re: [PATCH v2] accel-config/libaccel-config: Add IAX support Jiang, Dave
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.