Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp1946834ybf; Sun, 1 Mar 2020 22:19:24 -0800 (PST) X-Google-Smtp-Source: ADFU+vuuZcKMUNImVFrlh+G/rTEJEASY86pJAJDgARbLlPDQTAzIKigrMpjeHAbpmHwgnmBCyAtV X-Received: by 2002:aca:574c:: with SMTP id l73mr2762458oib.156.1583129964576; Sun, 01 Mar 2020 22:19:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583129964; cv=none; d=google.com; s=arc-20160816; b=xOTEbecLiIbCG4rlldOaRZP8OCe6i/KHnASCr2G/nGKUC0Sh8kv3gsvyem+YDch5sy 2MqQ33BsHh8+pXHgJLgwK2JqXOLJxCnVlQaGiMfR2vlkV4pbgSJxVavQt7Y4uzqvg/Zg 0c01cKJF1EPFKkBJgUe+1zrtWlgNUDBDVZaxVyDEjaYp6A0JneNvHlOTSqNxN8pYkiGc lnOv79jj3wpaP/um+n1NgNSqNOqCTkXmVh4kapScMOoYjbRx19u1UGst5L2pvb5TKC0s xnInhMb0eGIhqEN0QPgx/L1BhAKbZtUm1xchddcx37N37PTtL6C7ZgyEMkZhdCnjyi4G 1mgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=Bj5lvNOeVedhiFma/P6pewNZ/SulOlk6SwkPEVbKtwU=; b=fvuM38FwXHclKc9q/HaTVH2fvtXjqpPa7Ii1GHAdbyLZEGbXA6ne/hXJ7zH8/PP8As RVM+hizf+prk/y3+KkD4VPQm7zyacJRznG899mamlVGy5N/1ksf79fA6Qw0Wb1dVXShL akXg81TZ1Tn8e2ox9yEww+/txVcV8xdHXOh3/g5qVmZoJbSDEB00995Ow6G22RZHC7UX ZFnNTDNXePrUGhRshwcludEpz9BBkhwS4O6SFzRfdcR2e+id2tsU0ncrW9nxMpN5/ry/ a05LQhFcs5xDyX8h4nUM7StPkxf+djzPeSTbTKr7RUvy4YAnX6ON51joyiuuvR2LPdnT 4yzw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v126si6257513oia.106.2020.03.01.22.19.03; Sun, 01 Mar 2020 22:19:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726144AbgCBGTA (ORCPT + 99 others); Mon, 2 Mar 2020 01:19:00 -0500 Received: from szxga07-in.huawei.com ([45.249.212.35]:35920 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726030AbgCBGTA (ORCPT ); Mon, 2 Mar 2020 01:19:00 -0500 Received: from DGGEMS401-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 60F6B93CB52BECD51BF3; Mon, 2 Mar 2020 14:18:57 +0800 (CST) Received: from localhost.localdomain (10.67.165.24) by DGGEMS401-HUB.china.huawei.com (10.3.19.201) with Microsoft SMTP Server id 14.3.439.0; Mon, 2 Mar 2020 14:18:51 +0800 From: Zaibo Xu To: , CC: , , , , , , , , , Subject: [PATCH v2 2/5] crypto: hisilicon/sec2 - Add workqueue for SEC driver. Date: Mon, 2 Mar 2020 14:15:13 +0800 Message-ID: <1583129716-28382-3-git-send-email-xuzaibo@huawei.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1583129716-28382-1-git-send-email-xuzaibo@huawei.com> References: <1583129716-28382-1-git-send-email-xuzaibo@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-CFilter-Loop: Reflected Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org From: yekai13 Allocate one workqueue for each QM instead of one for all QMs, we found the throughput of SEC engine can be increased to the hardware limit throughput during testing sec2 performance. so we added this scheme. Signed-off-by: yekai13 Signed-off-by: liulongfang --- drivers/crypto/hisilicon/sec2/sec_main.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/hisilicon/sec2/sec_main.c b/drivers/crypto/hisilicon/sec2/sec_main.c index 3767fdb..ebafc1c 100644 --- a/drivers/crypto/hisilicon/sec2/sec_main.c +++ b/drivers/crypto/hisilicon/sec2/sec_main.c @@ -774,12 +774,24 @@ static void sec_qm_uninit(struct hisi_qm *qm) static int sec_probe_init(struct hisi_qm *qm, struct sec_dev *sec) { + int ret; + + qm->wq = alloc_workqueue("%s", WQ_HIGHPRI | WQ_CPU_INTENSIVE | + WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus(), + pci_name(qm->pdev)); + if (!qm->wq) { + pci_err(qm->pdev, "fail to alloc workqueue\n"); + return -ENOMEM; + } + if (qm->fun_type == QM_HW_PF) { qm->qp_base = SEC_PF_DEF_Q_BASE; qm->qp_num = pf_q_num; qm->debug.curr_qm_qp_num = pf_q_num; - return sec_pf_probe_init(sec); + ret = sec_pf_probe_init(sec); + if (ret) + goto err_probe_uninit; } else if (qm->fun_type == QM_HW_VF) { /* * have no way to get qm configure in VM in v1 hardware, @@ -792,18 +804,26 @@ static int sec_probe_init(struct hisi_qm *qm, struct sec_dev *sec) qm->qp_num = SEC_QUEUE_NUM_V1 - SEC_PF_DEF_Q_NUM; } else if (qm->ver == QM_HW_V2) { /* v2 starts to support get vft by mailbox */ - return hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num); + ret = hisi_qm_get_vft(qm, &qm->qp_base, &qm->qp_num); + if (ret) + goto err_probe_uninit; } } else { - return -ENODEV; + ret = -ENODEV; + goto err_probe_uninit; } return 0; +err_probe_uninit: + destroy_workqueue(qm->wq); + return ret; } static void sec_probe_uninit(struct hisi_qm *qm) { hisi_qm_dev_err_uninit(qm); + + destroy_workqueue(qm->wq); } static int sec_probe(struct pci_dev *pdev, const struct pci_device_id *id) -- 2.8.1