All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicholas Piggin <npiggin@gmail.com>
To: Haren Myneni <haren@linux.ibm.com>,
	herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au
Cc: haren@us.ibm.com, hbabu@us.ibm.com
Subject: Re: [PATCH v6 16/17] crypto/nx: Add sysfs interface to export NX capabilities
Date: Fri, 18 Jun 2021 09:41:49 +1000	[thread overview]
Message-ID: <1623972971.4k5lhowaxz.astroid@bobo.none> (raw)
In-Reply-To: <510da86abbd904878d5f13d74aba72603c37d783.camel@linux.ibm.com>

Excerpts from Haren Myneni's message of June 18, 2021 6:39 am:
> 
> Export NX-GZIP capabilities to usrespace in sysfs
> /sys/devices/vio/ibm,compression-v1/nx_gzip_caps directory.
> These are queried by userspace accelerator libraries to set
> minimum length heuristics and maximum limits on request sizes.
> 
> NX-GZIP capabilities:
> min_compress_len  /*Recommended minimum compress length in bytes*/
> min_decompress_len /*Recommended minimum decompress length in bytes*/
> req_max_processed_len /* Maximum number of bytes processed in one
> 			request */
> 
> NX will return RMA_Reject if the request buffer size is greater
> than req_max_processed_len.
> 
> Signed-off-by: Haren Myneni <haren@linux.ibm.com>
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>

Again, if you could just move those ^^ C style comments into the
code. Possibly have a small comment with the sysfs stuff saying that 
it's ABI which userspace code queries when using the accelerator (or
if you have an ABI documentation somewhere, point the comments to that).

sysfs is ABI, but some bits are more ABI than others, it would just be
good to be clear that it is actually used, and can't be changed.

Aside from that,

Acked-by: Nicholas Piggin <npiggin@gmail.com>

Thanks,
Nick

> ---
>  drivers/crypto/nx/nx-common-pseries.c | 43 +++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/drivers/crypto/nx/nx-common-pseries.c b/drivers/crypto/nx/nx-common-pseries.c
> index 9fc2abb56019..f51a50d40504 100644
> --- a/drivers/crypto/nx/nx-common-pseries.c
> +++ b/drivers/crypto/nx/nx-common-pseries.c
> @@ -967,6 +967,36 @@ static struct attribute_group nx842_attribute_group = {
>  	.attrs = nx842_sysfs_entries,
>  };
>  
> +#define	nxcop_caps_read(_name)						\
> +static ssize_t nxcop_##_name##_show(struct device *dev,			\
> +			struct device_attribute *attr, char *buf)	\
> +{									\
> +	return sprintf(buf, "%lld\n", nx_cop_caps._name);		\
> +}
> +
> +#define NXCT_ATTR_RO(_name)						\
> +	nxcop_caps_read(_name);						\
> +	static struct device_attribute dev_attr_##_name = __ATTR(_name,	\
> +						0444,			\
> +						nxcop_##_name##_show,	\
> +						NULL);
> +
> +NXCT_ATTR_RO(req_max_processed_len);
> +NXCT_ATTR_RO(min_compress_len);
> +NXCT_ATTR_RO(min_decompress_len);
> +
> +static struct attribute *nxcop_caps_sysfs_entries[] = {
> +	&dev_attr_req_max_processed_len.attr,
> +	&dev_attr_min_compress_len.attr,
> +	&dev_attr_min_decompress_len.attr,
> +	NULL,
> +};
> +
> +static struct attribute_group nxcop_caps_attr_group = {
> +	.name	=	"nx_gzip_caps",
> +	.attrs	=	nxcop_caps_sysfs_entries,
> +};
> +
>  static struct nx842_driver nx842_pseries_driver = {
>  	.name =		KBUILD_MODNAME,
>  	.owner =	THIS_MODULE,
> @@ -1056,6 +1086,16 @@ static int nx842_probe(struct vio_dev *viodev,
>  		goto error;
>  	}
>  
> +	if (caps_feat) {
> +		if (sysfs_create_group(&viodev->dev.kobj,
> +					&nxcop_caps_attr_group)) {
> +			dev_err(&viodev->dev,
> +				"Could not create sysfs NX capability entries\n");
> +			ret = -1;
> +			goto error;
> +		}
> +	}
> +
>  	return 0;
>  
>  error_unlock:
> @@ -1075,6 +1115,9 @@ static void nx842_remove(struct vio_dev *viodev)
>  	pr_info("Removing IBM Power 842 compression device\n");
>  	sysfs_remove_group(&viodev->dev.kobj, &nx842_attribute_group);
>  
> +	if (caps_feat)
> +		sysfs_remove_group(&viodev->dev.kobj, &nxcop_caps_attr_group);
> +
>  	crypto_unregister_alg(&nx842_pseries_alg);
>  
>  	spin_lock_irqsave(&devdata_mutex, flags);
> -- 
> 2.18.2
> 
> 
> 

WARNING: multiple messages have this Message-ID (diff)
From: Nicholas Piggin <npiggin@gmail.com>
To: Haren Myneni <haren@linux.ibm.com>,
	herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, mpe@ellerman.id.au
Subject: Re: [PATCH v6 16/17] crypto/nx: Add sysfs interface to export NX capabilities
Date: Fri, 18 Jun 2021 09:41:49 +1000	[thread overview]
Message-ID: <1623972971.4k5lhowaxz.astroid@bobo.none> (raw)
In-Reply-To: <510da86abbd904878d5f13d74aba72603c37d783.camel@linux.ibm.com>

Excerpts from Haren Myneni's message of June 18, 2021 6:39 am:
> 
> Export NX-GZIP capabilities to usrespace in sysfs
> /sys/devices/vio/ibm,compression-v1/nx_gzip_caps directory.
> These are queried by userspace accelerator libraries to set
> minimum length heuristics and maximum limits on request sizes.
> 
> NX-GZIP capabilities:
> min_compress_len  /*Recommended minimum compress length in bytes*/
> min_decompress_len /*Recommended minimum decompress length in bytes*/
> req_max_processed_len /* Maximum number of bytes processed in one
> 			request */
> 
> NX will return RMA_Reject if the request buffer size is greater
> than req_max_processed_len.
> 
> Signed-off-by: Haren Myneni <haren@linux.ibm.com>
> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>

Again, if you could just move those ^^ C style comments into the
code. Possibly have a small comment with the sysfs stuff saying that 
it's ABI which userspace code queries when using the accelerator (or
if you have an ABI documentation somewhere, point the comments to that).

sysfs is ABI, but some bits are more ABI than others, it would just be
good to be clear that it is actually used, and can't be changed.

Aside from that,

Acked-by: Nicholas Piggin <npiggin@gmail.com>

Thanks,
Nick

> ---
>  drivers/crypto/nx/nx-common-pseries.c | 43 +++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/drivers/crypto/nx/nx-common-pseries.c b/drivers/crypto/nx/nx-common-pseries.c
> index 9fc2abb56019..f51a50d40504 100644
> --- a/drivers/crypto/nx/nx-common-pseries.c
> +++ b/drivers/crypto/nx/nx-common-pseries.c
> @@ -967,6 +967,36 @@ static struct attribute_group nx842_attribute_group = {
>  	.attrs = nx842_sysfs_entries,
>  };
>  
> +#define	nxcop_caps_read(_name)						\
> +static ssize_t nxcop_##_name##_show(struct device *dev,			\
> +			struct device_attribute *attr, char *buf)	\
> +{									\
> +	return sprintf(buf, "%lld\n", nx_cop_caps._name);		\
> +}
> +
> +#define NXCT_ATTR_RO(_name)						\
> +	nxcop_caps_read(_name);						\
> +	static struct device_attribute dev_attr_##_name = __ATTR(_name,	\
> +						0444,			\
> +						nxcop_##_name##_show,	\
> +						NULL);
> +
> +NXCT_ATTR_RO(req_max_processed_len);
> +NXCT_ATTR_RO(min_compress_len);
> +NXCT_ATTR_RO(min_decompress_len);
> +
> +static struct attribute *nxcop_caps_sysfs_entries[] = {
> +	&dev_attr_req_max_processed_len.attr,
> +	&dev_attr_min_compress_len.attr,
> +	&dev_attr_min_decompress_len.attr,
> +	NULL,
> +};
> +
> +static struct attribute_group nxcop_caps_attr_group = {
> +	.name	=	"nx_gzip_caps",
> +	.attrs	=	nxcop_caps_sysfs_entries,
> +};
> +
>  static struct nx842_driver nx842_pseries_driver = {
>  	.name =		KBUILD_MODNAME,
>  	.owner =	THIS_MODULE,
> @@ -1056,6 +1086,16 @@ static int nx842_probe(struct vio_dev *viodev,
>  		goto error;
>  	}
>  
> +	if (caps_feat) {
> +		if (sysfs_create_group(&viodev->dev.kobj,
> +					&nxcop_caps_attr_group)) {
> +			dev_err(&viodev->dev,
> +				"Could not create sysfs NX capability entries\n");
> +			ret = -1;
> +			goto error;
> +		}
> +	}
> +
>  	return 0;
>  
>  error_unlock:
> @@ -1075,6 +1115,9 @@ static void nx842_remove(struct vio_dev *viodev)
>  	pr_info("Removing IBM Power 842 compression device\n");
>  	sysfs_remove_group(&viodev->dev.kobj, &nx842_attribute_group);
>  
> +	if (caps_feat)
> +		sysfs_remove_group(&viodev->dev.kobj, &nxcop_caps_attr_group);
> +
>  	crypto_unregister_alg(&nx842_pseries_alg);
>  
>  	spin_lock_irqsave(&devdata_mutex, flags);
> -- 
> 2.18.2
> 
> 
> 

  reply	other threads:[~2021-06-17 23:41 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-17 20:24 [PATCH v6 00/17] Enable VAS and NX-GZIP support on PowerVM Haren Myneni
2021-06-17 20:24 ` Haren Myneni
2021-06-17 20:29 ` [PATCH v6 01/17] powerpc/powernv/vas: Release reference to tgid during window close Haren Myneni
2021-06-17 20:29   ` Haren Myneni
2021-06-17 20:29 ` [PATCH v6 02/17] powerpc/vas: Move VAS API to book3s common platform Haren Myneni
2021-06-17 20:29   ` Haren Myneni
2021-06-17 20:30 ` [PATCH v6 03/17] powerpc/powernv/vas: Rename register/unregister functions Haren Myneni
2021-06-17 20:30   ` Haren Myneni
2021-06-17 20:31 ` [PATCH v6 04/17] powerpc/vas: Add platform specific user window operations Haren Myneni
2021-06-17 20:31   ` Haren Myneni
2021-06-17 23:27   ` Nicholas Piggin
2021-06-17 23:27     ` Nicholas Piggin
2021-06-17 20:31 ` [PATCH v6 05/17] powerpc/vas: Create take/drop pid and mm reference functions Haren Myneni
2021-06-17 20:31   ` Haren Myneni
2021-06-17 20:32 ` [PATCH v6 06/17] powerpc/vas: Move update_csb/dump_crb to common book3s platform Haren Myneni
2021-06-17 20:32   ` Haren Myneni
2021-06-17 23:10   ` Nicholas Piggin
2021-06-17 23:10     ` Nicholas Piggin
2021-06-17 20:33 ` [PATCH v6 07/17] powerpc/vas: Define and use common vas_window struct Haren Myneni
2021-06-17 20:33   ` Haren Myneni
2021-06-17 20:34 ` [PATCH v6 08/17] powerpc/pseries/vas: Define VAS/NXGZIP hcalls and structs Haren Myneni
2021-06-17 20:34   ` Haren Myneni
2021-06-17 20:34 ` [PATCH v6 09/17] powerpc/vas: Define QoS credit flag to allocate window Haren Myneni
2021-06-17 20:34   ` Haren Myneni
2021-06-17 20:35 ` [PATCH v6 10/17] powerpc/pseries/vas: Add hcall wrappers for VAS handling Haren Myneni
2021-06-17 20:35   ` Haren Myneni
2021-06-17 20:35 ` [PATCH v6 11/17] powerpc/pseries/vas: Implement getting capabilities from hypervisor Haren Myneni
2021-06-17 20:35   ` Haren Myneni
2021-06-17 23:24   ` Nicholas Piggin
2021-06-17 23:24     ` Nicholas Piggin
2021-06-17 20:36 ` [PATCH v6 12/17] powerpc/pseries/vas: Integrate API with open/close windows Haren Myneni
2021-06-17 20:36   ` Haren Myneni
2021-06-17 23:22   ` Nicholas Piggin
2021-06-17 23:22     ` Nicholas Piggin
2021-06-18  7:49     ` Haren Myneni
2021-06-18  7:49       ` Haren Myneni
2021-06-19  3:22       ` Nicholas Piggin
2021-06-19  3:22         ` Nicholas Piggin
2021-06-17 20:37 ` [PATCH v6 13/17] powerpc/pseries/vas: Setup IRQ and fault handling Haren Myneni
2021-06-17 20:37   ` Haren Myneni
2021-06-17 23:34   ` Nicholas Piggin
2021-06-17 23:34     ` Nicholas Piggin
2021-06-18  2:09     ` Haren Myneni
2021-06-18  2:09       ` Haren Myneni
2021-06-19  3:22       ` Nicholas Piggin
2021-06-19  3:22         ` Nicholas Piggin
2021-06-17 20:37 ` [PATCH v6 14/17] crypto/nx: Rename nx-842-pseries file name to nx-common-pseries Haren Myneni
2021-06-17 20:37   ` Haren Myneni
2021-06-17 20:38 ` [PATCH v6 15/17] crypto/nx: Get NX capabilities for GZIP coprocessor type Haren Myneni
2021-06-17 20:38   ` Haren Myneni
2021-06-17 23:35   ` Nicholas Piggin
2021-06-17 23:35     ` Nicholas Piggin
2021-06-17 20:39 ` [PATCH v6 16/17] crypto/nx: Add sysfs interface to export NX capabilities Haren Myneni
2021-06-17 20:39   ` Haren Myneni
2021-06-17 23:41   ` Nicholas Piggin [this message]
2021-06-17 23:41     ` Nicholas Piggin
2021-06-17 20:39 ` [PATCH v6 17/17] crypto/nx: Register and unregister VAS interface on PowerVM Haren Myneni
2021-06-17 20:39   ` Haren Myneni
2021-06-24 14:03 ` [PATCH v6 00/17] Enable VAS and NX-GZIP support " Michael Ellerman
2021-06-24 14:03   ` Michael Ellerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1623972971.4k5lhowaxz.astroid@bobo.none \
    --to=npiggin@gmail.com \
    --cc=haren@linux.ibm.com \
    --cc=haren@us.ibm.com \
    --cc=hbabu@us.ibm.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.