Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp809799pxj; Thu, 17 Jun 2021 14:32:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxoaDiSerCoqjYYJvoDMHZrCLHEoyl2qRfHer2Z0LvjGmlOekCxZgRsSrh/Pw8eV+9p7Njf X-Received: by 2002:aa7:d853:: with SMTP id f19mr493164eds.1.1623965574172; Thu, 17 Jun 2021 14:32:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623965574; cv=none; d=google.com; s=arc-20160816; b=ebjlf4LOWwbcjwznV49bKHf21m31WOzgvAeaxrshXzPqp6ZueUUGTy7gHV37MDIHY+ rHRV3/Rpf2V77yuMKRivbzN+XyHpGu11v4EDSlLlXc+lWBkLvsBQ8db/PNP6sTLdsq1D +G8x0GXEysPcc/G790zxGojgk+DbdvkxnOLFCjdHIrf67TydXTnRMvObuVIA+8LkYcr4 My0n0snzLUa4GBlPhuwjS2LDtxr1IeBuL84ECiRJoQD8Ns0uX95yQ5A+dyAVOHn2qWN+ TkjFbE4XW7WHaS60SrtN8P9Hfa0XuEkzC3Eb9UA5GfIaVtY5OBXdAGpUnS3cglF6Qlis 9xFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id:dkim-signature; bh=VNnL32h8YLdrfnAgrLtUDrJqedk8ARUwVwEKbksjtaI=; b=Egf7C2TMyTSgiWy7tiDC/j+/fCrZ559HI2ZeU1GupbXFkJQEzDwencJwOrKRy5SxVw 574WT228n3I8IH5L0jSYl4h1EC4APpyr5niLr+GCDEZhxS/kta499jLSUWifkaoj44hx f8FizGv4Y+OQq/HDk0RipqME1hgt5FF1Ly4Tm7qtS6GW+XrO7pHmRyfprE2VPyhBYSAo RqNfQAJ3ESBiUC6pL+AfpvnmRvkxVPWn0Phjb4ufgI96us4HeGZvsUeZyLoiFmuIKkjv vg454rs/5vvymuWn/cVEBwMaLfb5gsSAh8Vjc5yLFnFVF6fFfpOm7agKqRZP6NNl7gqf /JSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=cYHKRnqV; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c14si4282196edm.54.2021.06.17.14.32.31; Thu, 17 Jun 2021 14:32:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=cYHKRnqV; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232563AbhFQUla (ORCPT + 99 others); Thu, 17 Jun 2021 16:41:30 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:43654 "EHLO mx0b-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232286AbhFQUl3 (ORCPT ); Thu, 17 Jun 2021 16:41:29 -0400 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15HKYWdc155926; Thu, 17 Jun 2021 16:39:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : subject : from : to : cc : date : in-reply-to : references : content-type : mime-version : content-transfer-encoding; s=pp1; bh=VNnL32h8YLdrfnAgrLtUDrJqedk8ARUwVwEKbksjtaI=; b=cYHKRnqVJjewFuH7kLCyQLyD7ICWrZJ8rSsJQuZe+jHLHEBZGdO0Qj1n1NCDK0jxK4dd ZpjnnN4GSsrQCK2a6KPAN/JDVy2M8KRT1k7ed5aWY23zZNyebYdFyRzJyJ6QlgI2gwdv Aqte8JKgEhc07YCdZf/1Hpvj2UelVLtO67riT0Y9tNLVi8VLqUwiHIm+9nm0FfSh/Om6 DyAEWn6XdHWvhvjJkjFGJO1tlKsHz+D5aHEml/Nk3Kr1zjp4L40eWsYJ1syRp715cZyx YTLinz9eV7I16ResBlLcHOz9bmMYXuAe7tV2O2MUv3BcwarljqwXE+Cp41qU9mkrAayj Tg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3988xqrs8u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 17 Jun 2021 16:39:13 -0400 Received: from m0098421.ppops.net (m0098421.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 15HKZV2c164638; Thu, 17 Jun 2021 16:39:12 -0400 Received: from ppma02dal.us.ibm.com (a.bd.3ea9.ip4.static.sl-reverse.com [169.62.189.10]) by mx0a-001b2d01.pphosted.com with ESMTP id 3988xqrs8g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 17 Jun 2021 16:39:12 -0400 Received: from pps.filterd (ppma02dal.us.ibm.com [127.0.0.1]) by ppma02dal.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 15HKcFuv023415; Thu, 17 Jun 2021 20:39:12 GMT Received: from b01cxnp23032.gho.pok.ibm.com (b01cxnp23032.gho.pok.ibm.com [9.57.198.27]) by ppma02dal.us.ibm.com with ESMTP id 394mjaeqsu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 17 Jun 2021 20:39:12 +0000 Received: from b01ledav004.gho.pok.ibm.com (b01ledav004.gho.pok.ibm.com [9.57.199.109]) by b01cxnp23032.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 15HKdBuq17957250 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 17 Jun 2021 20:39:11 GMT Received: from b01ledav004.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 33343112062; Thu, 17 Jun 2021 20:39:11 +0000 (GMT) Received: from b01ledav004.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1AB31112061; Thu, 17 Jun 2021 20:39:10 +0000 (GMT) Received: from localhost.localdomain (unknown [9.160.180.39]) by b01ledav004.gho.pok.ibm.com (Postfix) with ESMTP; Thu, 17 Jun 2021 20:39:09 +0000 (GMT) Message-ID: <510da86abbd904878d5f13d74aba72603c37d783.camel@linux.ibm.com> Subject: [PATCH v6 16/17] crypto/nx: Add sysfs interface to export NX capabilities From: Haren Myneni To: linuxppc-dev@lists.ozlabs.org, linux-crypto@vger.kernel.org, mpe@ellerman.id.au, herbert@gondor.apana.org.au, npiggin@gmail.com Cc: hbabu@us.ibm.com, haren@us.ibm.com Date: Thu, 17 Jun 2021 13:39:08 -0700 In-Reply-To: <827bf56dce09620ebecd8a00a5f97105187a6205.camel@linux.ibm.com> References: <827bf56dce09620ebecd8a00a5f97105187a6205.camel@linux.ibm.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.36.2 (3.36.2-1.fc32) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: eaBzOXh3Z459e0s6p5IQISD9tdHOg6rD X-Proofpoint-ORIG-GUID: FxvFA1mZroZmQ7vQhAip-9xBeW1j_qmP X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.790 definitions=2021-06-17_16:2021-06-15,2021-06-17 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 mlxscore=0 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106170123 Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org 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 Acked-by: Herbert Xu --- 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