From patchwork Tue Jun 7 12:17:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "(Exiting) Baolin Wang" X-Patchwork-Id: 9161019 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9F0DE60467 for ; Tue, 7 Jun 2016 12:19:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F7631FE95 for ; Tue, 7 Jun 2016 12:19:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8409726861; Tue, 7 Jun 2016 12:19:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3E5B81FE95 for ; Tue, 7 Jun 2016 12:19:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161092AbcFGMSY (ORCPT ); Tue, 7 Jun 2016 08:18:24 -0400 Received: from mail-pf0-f174.google.com ([209.85.192.174]:34474 "EHLO mail-pf0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161087AbcFGMSW (ORCPT ); Tue, 7 Jun 2016 08:18:22 -0400 Received: by mail-pf0-f174.google.com with SMTP id 62so77551435pfd.1 for ; Tue, 07 Jun 2016 05:18:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=JrnmqpJJckOrnPZH2ETGagU+nog3J7+1RSv1kF6Yn5o=; b=VN4VNa9fU0zcokAnRPZeyWCWRGoetId2VUD4BKtZ6/u4jsLMFvLJf2XqQ8yJh6ybZu K1pdCJD9SNYpAWg8xnv8JuNapqeVjlDCAd75DM4Dhnc5h8L5y7uCnq+QL2di3N3OfR4w ch17jA0OhTPkhS5feBrMGadi1Q7KRW2FpalAk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=JrnmqpJJckOrnPZH2ETGagU+nog3J7+1RSv1kF6Yn5o=; b=j7uFntXd/VU6o2QZwso1hxYiazHvS5JjMPKrVw4Tn1J3827eJH835SR0Jum7YI3OmZ 6yEF2vI5umW/xZN1sJwRo8fqpkiienQRIvmQmv3Okh0uFFboYC/N4FFWPdN3rbYLDvAO 4xsR2AIDYe9Hq3iddfMLUWPUGOmo+7l+vCJP2CQUjauPj9o7T+Q5aQ8KQ9bJ35dr4Ni4 HmIsPqSiJG1Sro1Ks8zspIn0f7Fic5mgouVQQ5pWGmHvmDkMAbKNQgEaAQa8UCuyklDb TJu88JflISMiZJyQJ9SsJRosfhsaO+DJZMV8Ehm19kgOX37D7xeehZT2yZOCUMYEGzl1 z2sA== X-Gm-Message-State: ALyK8tLbfjCAdWF6bmEUIwdWzn7y4Il1DMqcW7D4NWOb9kS/h31YjSxOd37b7CaY2NFJbFD9 X-Received: by 10.98.210.66 with SMTP id c63mr1418002pfg.25.1465301901345; Tue, 07 Jun 2016 05:18:21 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([175.111.195.49]) by smtp.gmail.com with ESMTPSA id r64sm34995877pfi.54.2016.06.07.05.18.15 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 07 Jun 2016 05:18:20 -0700 (PDT) From: Baolin Wang To: axboe@kernel.dk, agk@redhat.com, snitzer@redhat.com, dm-devel@redhat.com, herbert@gondor.apana.org.au, davem@davemloft.net Cc: ebiggers3@gmail.com, js1304@gmail.com, tadeusz.struk@intel.com, smueller@chronox.de, standby24x7@gmail.com, shli@kernel.org, dan.j.williams@intel.com, martin.petersen@oracle.com, sagig@mellanox.com, kent.overstreet@gmail.com, keith.busch@intel.com, tj@kernel.org, ming.lei@canonical.com, broonie@kernel.org, arnd@arndb.de, linux-crypto@vger.kernel.org, linux-block@vger.kernel.org, linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [RFC v4 2/4] crypto: Introduce CRYPTO_ALG_BULK flag Date: Tue, 7 Jun 2016 20:17:05 +0800 Message-Id: <238ce3d506051c863300b90720c3e103175747cc.1465301616.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Now some cipher hardware engines prefer to handle bulk block rather than one sector (512 bytes) created by dm-crypt, cause these cipher engines can handle the intermediate values (IV) by themselves in one bulk block. This means we can increase the size of the request by merging request rather than always 512 bytes and thus increase the hardware engine processing speed. So introduce 'CRYPTO_ALG_BULK' flag to indicate this cipher can support bulk mode. Signed-off-by: Baolin Wang --- include/crypto/skcipher.h | 7 +++++++ include/linux/crypto.h | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/include/crypto/skcipher.h b/include/crypto/skcipher.h index 0f987f5..d89d29a 100644 --- a/include/crypto/skcipher.h +++ b/include/crypto/skcipher.h @@ -519,5 +519,12 @@ static inline void skcipher_request_set_crypt( req->iv = iv; } +static inline unsigned int skcipher_is_bulk_mode(struct crypto_skcipher *sk_tfm) +{ + struct crypto_tfm *tfm = crypto_skcipher_tfm(sk_tfm); + + return crypto_tfm_alg_bulk(tfm); +} + #endif /* _CRYPTO_SKCIPHER_H */ diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 6e28c89..a315487 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -63,6 +63,7 @@ #define CRYPTO_ALG_DEAD 0x00000020 #define CRYPTO_ALG_DYING 0x00000040 #define CRYPTO_ALG_ASYNC 0x00000080 +#define CRYPTO_ALG_BULK 0x00000100 /* * Set this bit if and only if the algorithm requires another algorithm of @@ -623,6 +624,11 @@ static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm) return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK; } +static inline unsigned int crypto_tfm_alg_bulk(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_flags & CRYPTO_ALG_BULK; +} + static inline unsigned int crypto_tfm_alg_blocksize(struct crypto_tfm *tfm) { return tfm->__crt_alg->cra_blocksize;