From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B43F942C6A; Fri, 9 Jun 2023 08:57:55 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8B81240EDB; Fri, 9 Jun 2023 08:57:55 +0200 (CEST) Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) by mails.dpdk.org (Postfix) with ESMTP id C1B5C40A84 for ; Fri, 9 Jun 2023 08:57:54 +0200 (CEST) Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-64d44b198baso1127615b3a.0 for ; Thu, 08 Jun 2023 23:57:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1686293874; x=1688885874; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=wIRFLVwpepngZa92o+nV62MHSPDT6QUSnx1f5OzISdU=; b=HU+pevHrcS768wy5pdsNYxc/v2lXZNV1smg9d1365ZlnMnuWNyaW3XHNuC4e8O/HDb 248cj3PWQIA+IT+pMDCUHtAt57tUMxNh5iHDPiLHTemJVdz3U4QM+2ACSAaKkNNyaTHJ 29lV79iLV+IOpmR/gtkGaS1Q4+H5zYKb5IjeJpoPw/AoEMH3J/d+U1pcN4lFTB4t6t/m +Z08RU1/ju8M0RGva01xiFfLwxXRvmbXNYxYJX4TG5ivMOCJ1yTiQPwLILhPb6UEL13P LbzqpxRZAldpkwJlecioCUbsogIqF/6bcvx0qZArvSdPnoBCFXZwMVI96RrjzoRLlIRj f57Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686293874; x=1688885874; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=wIRFLVwpepngZa92o+nV62MHSPDT6QUSnx1f5OzISdU=; b=HnLzeaLMgHQAvtJYG8P2SqYTxnOREBVA/05j7YQwqG3KMUbcYqhycuGO7sQudjrbBz 1110dOUZAhBiv6VspPHld2HG0w2NrIYF9H9mIySsWDrmgSAlpJrYfR1QcTPF39EKFYgv oSyxStusORcwtFmPY5q9t/+hd712gNRtDyfp7xXHIk1uFxhthVyZPhkcc1DCqg754IIG bXvqx/9o3Pcm1d2hN8JENuxEFVpNdgbV+IfbaEsWzsQU1xIQko90JZMzGEPGra89KXdp PmywjPiTzrNpd8WEFI/RigAodNojPhqqAA06y3phRvppDQMdOe00p+1Uo1QTtTdiZ+7p G1wg== X-Gm-Message-State: AC+VfDy1uEoDenU0FhEoxDXH7t9UKTZ7P7OK0cbSadjbBId8+ng3cbu2 fIEFuVd3Xdk4Nz/+OgvdLvuMdA== X-Google-Smtp-Source: ACHHUZ7WE9WYM1ut988n9cnHK9N+eB0v22y17q5aTO6nfwlsf85fz8fEuH/yxcwcjrnyZXf+SsQDWg== X-Received: by 2002:a05:6a00:1d24:b0:653:791b:d326 with SMTP id a36-20020a056a001d2400b00653791bd326mr5262986pfx.1.1686293873798; Thu, 08 Jun 2023 23:57:53 -0700 (PDT) Received: from [100.64.100.6] ([199.101.192.34]) by smtp.gmail.com with ESMTPSA id m18-20020aa79012000000b0063b5776b073sm2024465pfo.117.2023.06.08.23.57.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Jun 2023 23:57:53 -0700 (PDT) Message-ID: <830aa127-0794-6e7d-681a-64b14f070c38@linaro.org> Date: Fri, 9 Jun 2023 14:57:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v2 resend] crypto/uadk: set queue pair in dev_configure To: Akhil Goyal Cc: dev@dpdk.org References: <20230420021313.66733-1-zhangfei.gao@linaro.org> <20230602030436.7829-1-zhangfei.gao@linaro.org> From: Zhangfei Gao In-Reply-To: <20230602030436.7829-1-zhangfei.gao@linaro.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Hi, Akhil 在 2023/6/2 11:04, Zhangfei Gao 写道: > By default, uadk only alloc two queues for each algorithm, which > will impact performance. > Set queue pair number as required in dev_configure. > The default max queue pair number is 8, which can be modified > via para: max_nb_queue_pairs > > Example: > sudo dpdk-test-crypto-perf -l 0-10 --vdev crypto_uadk,max_nb_queue_pairs=10 > -- --devtype crypto_uadk --optype cipher-only --buffer-sz 8192 > > Signed-off-by: Zhangfei Gao Would you mind taking a look at this patch? The ci test supposes no problem. https://lab.dpdk.org/results/dashboard/patchsets/26502/ Thanks > --- > doc/guides/cryptodevs/uadk.rst | 27 +++++++++++++++++++ > drivers/crypto/uadk/uadk_crypto_pmd.c | 18 +++++++++++-- > drivers/crypto/uadk/uadk_crypto_pmd_private.h | 1 + > 3 files changed, 44 insertions(+), 2 deletions(-) > > diff --git a/doc/guides/cryptodevs/uadk.rst b/doc/guides/cryptodevs/uadk.rst > index 9af6b88a5a..053622f7bf 100644 > --- a/doc/guides/cryptodevs/uadk.rst > +++ b/doc/guides/cryptodevs/uadk.rst > @@ -110,3 +110,30 @@ Test steps > sudo dpdk-test --vdev=crypto_uadk --log-level=6 > RTE>>cryptodev_uadk_autotest > RTE>>quit > + > + > +Initialization > +-------------- > + > +To use the PMD in an application, user must: > + > +* Call rte_vdev_init("crypto_uadk") within the application. > + > +* Use --vdev="crypto_uadk" in the EAL options, which will call rte_vdev_init() internally. > + > +The following parameters (all optional) can be provided in the previous two calls: > + > +* max_nb_queue_pairs: Specify the maximum number of queue pairs in the device (8 by default). > + The max value of max_nb_queue_pairs can be queried from the device property available_instances. > + Property available_instances value may differ from the devices and platforms. > + Allocating queue pairs bigger than available_instances will fail. > + > +Example: > + > +.. code-block:: console > + > + cat /sys/class/uacce/hisi_sec2-2/available_instances > + 256 > + > + sudo dpdk-test-crypto-perf -l 0-10 --vdev crypto_uadk,max_nb_queue_pairs=10 \ > + -- --devtype crypto_uadk --optype cipher-only --buffer-sz 8192 > diff --git a/drivers/crypto/uadk/uadk_crypto_pmd.c b/drivers/crypto/uadk/uadk_crypto_pmd.c > index 4f729e0f07..824383512e 100644 > --- a/drivers/crypto/uadk/uadk_crypto_pmd.c > +++ b/drivers/crypto/uadk/uadk_crypto_pmd.c > @@ -357,8 +357,15 @@ static const struct rte_cryptodev_capabilities uadk_crypto_v2_capabilities[] = { > /* Configure device */ > static int > uadk_crypto_pmd_config(struct rte_cryptodev *dev __rte_unused, > - struct rte_cryptodev_config *config __rte_unused) > + struct rte_cryptodev_config *config) > { > + char env[128]; > + > + /* set queue pairs num via env */ > + sprintf(env, "sync:%d@0", config->nb_queue_pairs); > + setenv("WD_CIPHER_CTX_NUM", env, 1); > + setenv("WD_DIGEST_CTX_NUM", env, 1); > + > return 0; > } > > @@ -434,7 +441,7 @@ uadk_crypto_pmd_info_get(struct rte_cryptodev *dev, > if (dev_info != NULL) { > dev_info->driver_id = dev->driver_id; > dev_info->driver_name = dev->device->driver->name; > - dev_info->max_nb_queue_pairs = 128; > + dev_info->max_nb_queue_pairs = priv->max_nb_qpairs; > /* No limit of number of sessions */ > dev_info->sym.max_nb_sessions = 0; > dev_info->feature_flags = dev->feature_flags; > @@ -1015,6 +1022,7 @@ uadk_cryptodev_probe(struct rte_vdev_device *vdev) > struct uadk_crypto_priv *priv; > struct rte_cryptodev *dev; > struct uacce_dev *udev; > + const char *input_args; > const char *name; > > udev = wd_get_accel_dev("cipher"); > @@ -1030,6 +1038,9 @@ uadk_cryptodev_probe(struct rte_vdev_device *vdev) > if (name == NULL) > return -EINVAL; > > + input_args = rte_vdev_device_args(vdev); > + rte_cryptodev_pmd_parse_input_args(&init_params, input_args); > + > dev = rte_cryptodev_pmd_create(name, &vdev->device, &init_params); > if (dev == NULL) { > UADK_LOG(ERR, "driver %s: create failed", init_params.name); > @@ -1044,6 +1055,7 @@ uadk_cryptodev_probe(struct rte_vdev_device *vdev) > RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO; > priv = dev->data->dev_private; > priv->version = version; > + priv->max_nb_qpairs = init_params.max_nb_queue_pairs; > > rte_cryptodev_pmd_probing_finish(dev); > > @@ -1078,4 +1090,6 @@ static struct cryptodev_driver uadk_crypto_drv; > RTE_PMD_REGISTER_VDEV(UADK_CRYPTO_DRIVER_NAME, uadk_crypto_pmd); > RTE_PMD_REGISTER_CRYPTO_DRIVER(uadk_crypto_drv, uadk_crypto_pmd.driver, > uadk_cryptodev_driver_id); > +RTE_PMD_REGISTER_PARAM_STRING(UADK_CRYPTO_DRIVER_NAME, > + "max_nb_queue_pairs="); > RTE_LOG_REGISTER_DEFAULT(uadk_crypto_logtype, INFO); > diff --git a/drivers/crypto/uadk/uadk_crypto_pmd_private.h b/drivers/crypto/uadk/uadk_crypto_pmd_private.h > index 9075f0f058..5a7dbff117 100644 > --- a/drivers/crypto/uadk/uadk_crypto_pmd_private.h > +++ b/drivers/crypto/uadk/uadk_crypto_pmd_private.h > @@ -67,6 +67,7 @@ struct uadk_crypto_priv { > bool env_cipher_init; > bool env_auth_init; > enum uadk_crypto_version version; > + unsigned int max_nb_qpairs; > } __rte_cache_aligned; > > extern int uadk_crypto_logtype;