[Accel-config] Re: [PATCH v1 1/2] accel-config: Remove cdev related code

Dave Jiang <dave.jiang at intel.com>
Newsgroups dev.linux.lists.accel-config
Message-ID <[email protected]>
On 5/17/2021 2:50 PM, ramesh.thomas(a)intel.com wrote:
> From: Ramesh Thomas <ramesh.thomas(a)intel.com>
>
> cdev major/minor method of opening idxd char dev will be deprecated.
> Currently even in non uacce mode the char dev is opened using the device
> name at /dev/dsa that is returned by accfg_wq_get_user_dev_path()

I'm concerned about backward compatibility for apps (Intel user libs) 
that may still use minor/major API. Do we need to provide some sort of 
backward compatibility (maybe with warnings?) until they get off this 
train? Especially they have been doing releases already.


>
> Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
> ---
>   accfg/lib/libaccel-config.sym |  2 -
>   accfg/lib/libaccfg.c          | 80 -----------------------------------
>   accfg/lib/private.h           |  2 -
>   accfg/libaccel_config.h       |  2 -
>   util/json.c                   | 11 -----
>   5 files changed, 97 deletions(-)
>
> diff --git a/accfg/lib/libaccel-config.sym b/accfg/lib/libaccel-config.sym
> index aecc98b..3e86274 100644
> --- a/accfg/lib/libaccel-config.sym
> +++ b/accfg/lib/libaccel-config.sym
> @@ -28,7 +28,6 @@ LIBACCFG_1 {
>   	accfg_device_get_state;
>   	accfg_device_get_max_tokens;
>   	accfg_device_get_max_batch_size;
> -	accfg_device_get_cdev_major;
>   	accfg_device_is_active;
>   	accfg_device_get_token_limit;
>   	accfg_device_set_token_limit;
> @@ -69,7 +68,6 @@ LIBACCFG_1 {
>   	accfg_wq_get_size;
>   	accfg_wq_get_block_on_fault;
>   	accfg_wq_get_state;
> -	accfg_wq_get_cdev_minor;
>   	accfg_wq_get_type;
>   	accfg_wq_get_threshold;
>   	accfg_wq_set_size;
> diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c
> index 0796f08..f0f6bb2 100644
> --- a/accfg/lib/libaccfg.c
> +++ b/accfg/lib/libaccfg.c
> @@ -581,7 +581,6 @@ static void *add_device(void *parent, int id, const char *ctl_base,
>   			"pasid_enabled");
>   	device->max_tokens = accfg_get_param_long(ctx, dfd, "max_tokens");
>   	device->token_limit = accfg_get_param_long(ctx, dfd, "token_limit");
> -	device->cdev_major = accfg_get_param_long(ctx, dfd, "cdev_major");
>   	device->version = accfg_get_param_unsigned_llong(ctx, dfd, "version");
>   	device->device_path = realpath(ctl_base, NULL);
>   	close(dfd);
> @@ -727,7 +726,6 @@ static void *add_wq(void *parent, int id, const char *wq_base,
>   			"block_on_fault");
>   	wq->mode = accfg_get_param_str(ctx, dfd, "mode");
>   	wq->state = accfg_get_param_str(ctx, dfd, "state");
> -	wq->cdev_minor = accfg_get_param_long(ctx, dfd, "cdev_minor");
>   	wq_type = accfg_get_param_str(ctx, dfd, "type");
>   	wq->name = accfg_get_param_str(ctx, dfd, "name");
>   	wq->threshold =  accfg_get_param_long(ctx, dfd, "threshold");
> @@ -1378,12 +1376,6 @@ ACCFG_EXPORT unsigned int accfg_device_get_token_limit(
>   	return device->token_limit;
>   }
>   
> -ACCFG_EXPORT unsigned int accfg_device_get_cdev_major(
> -		struct accfg_device *device)
> -{
> -	return device->cdev_major;
> -}
> -
>   ACCFG_EXPORT unsigned int accfg_device_get_version(
>   		struct accfg_device *device)
>   {
> @@ -1859,11 +1851,6 @@ ACCFG_EXPORT const char *accfg_wq_get_devname(struct accfg_wq *wq)
>   	return devpath_to_devname(wq->wq_path);
>   }
>   
> -ACCFG_EXPORT int accfg_wq_get_cdev_minor(struct accfg_wq *wq)
> -{
> -	return wq->cdev_minor;
> -}
> -
>   ACCFG_EXPORT enum accfg_wq_type accfg_wq_get_type(struct accfg_wq *wq)
>   {
>   	return wq->type;
> @@ -1923,68 +1910,6 @@ ACCFG_EXPORT int accfg_wq_priority_boundary(struct accfg_wq *wq)
>   	return 0;
>   }
>   
> -static int accfg_wq_retrieve_cdev_minor(struct accfg_wq *wq)
> -{
> -	struct accfg_ctx *ctx = accfg_wq_get_ctx(wq);
> -	char *path = wq->wq_buf;
> -	char buf[SYSFS_ATTR_SIZE];
> -	int rc;
> -
> -	rc = sprintf(wq->wq_buf, "%s/%s", wq->wq_path, "cdev_minor");
> -	if (rc < 0)
> -		return -errno;
> -
> -	if (sysfs_read_attr(ctx, path, buf) < 0) {
> -		err(ctx, "%s: retrieve cdev minor failed: '%s': %s\n",
> -				__func__, wq->wq_path, strerror(errno));
> -		return -errno;
> -	}
> -
> -	wq->cdev_minor = atoi(buf);
> -	return 0;
> -}
> -
> -static int accfg_wq_post_enable(struct accfg_wq *wq)
> -{
> -	enum accfg_wq_type type;
> -	int rc;
> -
> -	type = accfg_wq_get_type(wq);
> -
> -	if (type == ACCFG_WQT_USER) {
> -		rc = accfg_wq_retrieve_cdev_minor(wq);
> -		if (rc < 0)
> -			return rc;
> -	}
> -
> -	return 0;
> -}
> -
> -static int accfg_wq_post_disable(struct accfg_wq *wq)
> -{
> -	enum accfg_wq_type type;
> -
> -	type = accfg_wq_get_type(wq);
> -
> -	if (type == ACCFG_WQT_USER)
> -		wq->cdev_minor = -1;
> -
> -	return 0;
> -}
> -
> -static int accfg_wq_control_post_processing(struct accfg_wq *wq,
> -		enum accfg_control_flag flag)
> -{
> -	if (flag == ACCFG_WQ_ENABLE)
> -		return accfg_wq_post_enable(wq);
> -	else if (flag == ACCFG_WQ_DISABLE)
> -		return accfg_wq_post_disable(wq);
> -	else
> -		return -EINVAL;
> -
> -	return 0;
> -}
> -
>   static bool accfg_wq_state_expected(struct accfg_wq *wq,
>   		enum accfg_control_flag flag)
>   {
> @@ -2052,11 +1977,6 @@ static int accfg_wq_control(struct accfg_wq *wq, enum accfg_control_flag flag,
>   		return -ENXIO;
>   	}
>   
> -	/* post processing */
> -	rc = accfg_wq_control_post_processing(wq, flag);
> -	if (rc < 0)
> -		return rc;
> -
>   	return 0;
>   }
>   
> diff --git a/accfg/lib/private.h b/accfg/lib/private.h
> index 7f3162e..dc12388 100644
> --- a/accfg/lib/private.h
> +++ b/accfg/lib/private.h
> @@ -50,7 +50,6 @@ struct accfg_device {
>   	int configurable;
>   	int max_tokens;
>   	unsigned int token_limit;
> -	unsigned int cdev_major;
>   	unsigned int version;
>   	uint64_t max_transfer_size;
>   	uint64_t opcap;
> @@ -118,7 +117,6 @@ struct accfg_wq {
>   	int priv;
>   	int priority;
>   	int block_on_fault;
> -	int cdev_minor;
>   	unsigned int threshold;
>   	char *mode;
>   	char *name;
> diff --git a/accfg/libaccel_config.h b/accfg/libaccel_config.h
> index 5b37790..44fb38c 100644
> --- a/accfg/libaccel_config.h
> +++ b/accfg/libaccel_config.h
> @@ -183,7 +183,6 @@ enum accfg_device_state accfg_device_get_state(struct accfg_device *device);
>   unsigned int accfg_device_get_max_tokens(struct accfg_device *device);
>   unsigned int accfg_device_get_max_batch_size(struct accfg_device *device);
>   unsigned int accfg_device_get_token_limit(struct accfg_device *device);
> -unsigned int accfg_device_get_cdev_major(struct accfg_device *device);
>   unsigned int accfg_device_get_version(struct accfg_device *device);
>   int accfg_device_get_clients(struct accfg_device *device);
>   int accfg_device_set_token_limit(struct accfg_device *dev, int val);
> @@ -258,7 +257,6 @@ int accfg_wq_get_priority(struct accfg_wq *wq);
>   unsigned int accfg_wq_get_priv(struct accfg_wq *wq);
>   int accfg_wq_get_block_on_fault(struct accfg_wq *wq);
>   enum accfg_wq_state accfg_wq_get_state(struct accfg_wq *wq);
> -int accfg_wq_get_cdev_minor(struct accfg_wq *wq);
>   const char *accfg_wq_get_type_name(struct accfg_wq *wq);
>   enum accfg_wq_type accfg_wq_get_type(struct accfg_wq *wq);
>   unsigned int accfg_wq_get_max_batch_size(struct accfg_wq *wq);
> diff --git a/util/json.c b/util/json.c
> index 4fb43d2..d1015c3 100644
> --- a/util/json.c
> +++ b/util/json.c
> @@ -324,11 +324,6 @@ struct json_object *util_device_to_json(struct accfg_device *device,
>   		json_object_object_add(jdevice, "pasid_enabled", jobj);
>   	}
>   
> -	jobj = json_object_new_int(accfg_device_get_cdev_major(device));
> -	if (!jobj)
> -		goto err;
> -	json_object_object_add(jdevice, "cdev_major", jobj);
> -
>   	jobj = json_object_new_int(accfg_device_get_clients(device));
>   	if (!jobj)
>   		goto err;
> @@ -439,12 +434,6 @@ struct json_object *util_wq_to_json(struct accfg_wq *wq,
>   	if (jobj)
>   		json_object_object_add(jaccfg, "max_transfer_size", jobj);
>   
> -	if (!(flags & UTIL_JSON_SAVE) && accfg_wq_get_cdev_minor(wq) >= 0) {
> -		jobj = json_object_new_int(accfg_wq_get_cdev_minor(wq));
> -		if (jobj)
> -			json_object_object_add(jaccfg, "cdev_minor", jobj);
> -	}
> -
>   	jobj = json_object_new_string(wq_type_str[accfg_wq_get_type(wq)]);
>   	if (jobj)
>   		json_object_object_add(jaccfg, "type", jobj);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.