From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32D7BC48BF8 for ; Mon, 19 Feb 2024 23:34:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ABC2A6B007E; Mon, 19 Feb 2024 18:34:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A6B806B0080; Mon, 19 Feb 2024 18:34:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 90BD36B0081; Mon, 19 Feb 2024 18:34:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7D7D86B007E for ; Mon, 19 Feb 2024 18:34:28 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 259DD1A04B1 for ; Mon, 19 Feb 2024 23:34:28 +0000 (UTC) X-FDA: 81810159816.02.A5607D6 Received: from mail-ua1-f53.google.com (mail-ua1-f53.google.com [209.85.222.53]) by imf23.hostedemail.com (Postfix) with ESMTP id 60994140006 for ; Mon, 19 Feb 2024 23:34:26 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MuprNw6k; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.53 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708385666; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PYfQRgerInCmwNvZqW81uhkqssL/LY3qNELwtrgooew=; b=VZLXMS101SFZ5g06+Vaj3FVZpOcOhn6PeeEuUneJIblPkjlbPhhRh9oQm/JNrls5BexQMG rC8Le9pNmINzRSG7MnINYDvoZx4BfNNgwmCxTBnLj7MPYjnpmT/tAJWBaeR4hk2yqtkFl9 1nzzfq4UEtvpPLuY+wv64jFfQ5zmIXU= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MuprNw6k; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.53 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708385666; a=rsa-sha256; cv=none; b=7dJtI1ATT7y+VA+AUB3VCofjSryIGPOtiNTQkRVffIfbN7aShCZwncK5x/rhRk5EY8R9hz u8BZxQwa8j7QDdD6P2tA9G17L4ZmRM8Q6kdTcXCBQXiT7hyAsO5KpJkZ+Q9hqEyn2goeQV fDMQE9rg9c06Ll5pz8soowEKS+5lsII= Received: by mail-ua1-f53.google.com with SMTP id a1e0cc1a2514c-7d5bbbe592dso2568452241.0 for ; Mon, 19 Feb 2024 15:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708385665; x=1708990465; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=PYfQRgerInCmwNvZqW81uhkqssL/LY3qNELwtrgooew=; b=MuprNw6kAr1Zpbs/3jJRqULsjduWYURWI4KvJ1eipp6IhoTjzToJ9se7eGKpOz0rqF VmKD6G2qony0N/xeWsNiKJxF4uiNu1d4wmHzcf7TFzd2gvJTbu3yUNZiOhxLDcQzwflE hpLC2AwKREqm9WJHyBbFUpagnSH1ngqkzGOo5mE2HmgYKN3skYWJ0qADEZvwoPYlZ/Te YKG7qLy484qer6A1OZsx0EmB6GkR6gjmhVyZ8I/uabyiIYvG34D9NwYYABUOGUXs2//N 2r+pZI89suF58OEwU/FI6rHnWBlXmdn5n2fLyD7iPHO5iLCZeELHO+8cdF5CHIa92E73 gr2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708385665; x=1708990465; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PYfQRgerInCmwNvZqW81uhkqssL/LY3qNELwtrgooew=; b=R82RE/zD85xC2SPHn7OhGyJVogfbbAFVp4+cSWvGWj0A3o2qmt5UNHGdRHKGWquYBH gvMxsPNes5TH5tgI3fbYIHGCVnKnz5q439UPrqOvKLYUEcAgMQsnjjKe2nXSGRrAM2rd w9oJZiYS0+UHmWljGagm7qjO3OJoJ4lxiQUSFwLBcJItx00eNWkdFqMvKG1oMNnNcGeB EECrMxGYEB+itIrhzJ3i+txWkWD7lhF/eeGGO6HaAOiIEy23o0aA/gtmlYTqL8bd4DTQ sqsUZAhtKV1xv4ApGIupzkDfaapOlmzSyR1hhnBPjsAZC7Zl8G4MQZTLLOvCunmHaUOd b5CA== X-Forwarded-Encrypted: i=1; AJvYcCWraiw4TqklszQAvTgALSS3tgwj9CRBxztd3NaBwwignRCGP4gBKHg/Ou4RpfA8Xpaqd0q8S5Qm6xqg4Hrz4xyxcoo= X-Gm-Message-State: AOJu0YxiT3Ok6+MDMQLnS5TpGCDSXY/dR13bIa5RkvGo1RFrCmEdbFW8 DXFUIQdLZXJpxiF47dF+mM61xWUtsTa22nYPnK3nHwihBnFtIbT7B2cT6HSi9UFmxKdt0EYzkYd g30Dcg/mzCelXoxau+yIZ7uZt21pWmggN/Oarlw== X-Google-Smtp-Source: AGHT+IHwkTvyF1TswRoNzdISthd89fzuOxw7pUd6Bks5jp9D6WExL/64dz8lBAZZTYmsoQTyR5kerUTdbLJ6xL08xHE= X-Received: by 2002:a05:6102:a4f:b0:46d:2956:6b11 with SMTP id i15-20020a0561020a4f00b0046d29566b11mr14474307vss.16.1708385665377; Mon, 19 Feb 2024 15:34:25 -0800 (PST) MIME-Version: 1.0 References: <20240217045102.55339-1-21cnbao@gmail.com> <20240217045102.55339-2-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Tue, 20 Feb 2024 12:34:14 +1300 Message-ID: Subject: Re: [PATCH v3 1/3] crypto: introduce acomp_is_sleepable to expose if comp drivers might sleep To: Herbert Xu Cc: akpm@linux-foundation.org, davem@davemloft.net, hannes@cmpxchg.org, linux-crypto@vger.kernel.org, linux-mm@kvack.org, nphamcs@gmail.com, yosryahmed@google.com, zhouchengming@bytedance.com, chriscli@google.com, chrisl@kernel.org, ddstreet@ieee.org, linux-kernel@vger.kernel.org, sjenning@redhat.com, vitaly.wool@konsulko.com, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 60994140006 X-Stat-Signature: nkw31dozs41xhs7t8jend4imix5hansj X-HE-Tag: 1708385666-126026 X-HE-Meta: U2FsdGVkX198sBmRZ6ZSjBHjyfa/91GbbV4W4c91XuwFfgnCEWZ1IY7Wa7AdbvhO3eobI4Vqk2SoinZZX/1XsqMV3LYlUGIMXnxQcscprj2MqMN8xIWPLoIplDEKow3nhMhitjr12TNNZvPdDMQltOQYQ6spGX+7fGZk3eTAwSQcL1wCGM/k2bG4JoIrzskW77+IPO6NsNvPOii2LFWZzTn8v6qEEDUk0jwV1C0hVnMjE+gGmdNcZAlHX8znF1M1gYbsi/qchHqdypvFLn4KvFhtU/V2vddEgdDxplERAud+kSGrYnRWEHlHEffUl0W+gatdL2N6VPaV/LlC5bQdA1QgX0SLGXdOUKiye5Vd1gDMt+WhTVXcyVKpxUT/DQuyPzxptj1RChtwRLvxGrwftpIL4z+W5z3TeFh3DPOGm3TJApDOq7hzZlgSG2mbRTLHrdUpxrQ/8KUrOFLS24RogzDag1uuso5AaMW0SOZgVnkWnGC/QfeNmxQyGhxSuiwMYVdEjyAzaajebshVCM3t+XX9VEAhejVcRCJQMogP/+n2YhAZgNBe0I+Qk5QjMWrrj2Xpfwha8nRtex3aWOdollCpeI/pui6UvxOmM+ChVKMOZyd8rNY+jGXP7EcU/mY5UdFuOqBrltnx3/e75YakMBV8FKd+t0L06m0Qp6IO5CBsKbUoEvFQ1SgQJ9nwj+1SbIMtzVp2LHX849AtfhEAS06G/LP3gw4TUAXoHySlH1ie/JRSQ151ngNHaUCn29CO5QnaF9F8kj1oFqnHxr1MxJsXVOkrLFJcAxGXO1Pjr6vaygkhXeM3AsRIfpvJfay4KcY7XuJOitc+hE5+ifoC6yhdvJ/Wm0fZ/6Ymi/3DI7p+z5W1rsCEnljRI5mxhMfBaGc6A2l18Mngxka245e8CZYr0Q+MCBkBMXPl/XScpS1CvR9nAg+YNphQcs5nzzu1iNSUtd9K5myW4Nm3F/t drQLBOCr 5r0ycApdNf3e797Ng/GUFwuXCmDVHHgkbTykHPqhM/NRxS7Cm/vjVSdzyJSUzh6p8d6KWSvZSJDPUi5bXOalX3Eqk71CNsb8EK9Q3pfVKCz40R47JInvA5KppTQAxUZ3FU2Mqb5RE5TWBkkU3AKVfAwMBEzgt8GHK1jrwdMu2wcJGqN311W3L4xkKiiLCV0WKGaBNPIw8lIGW6tbQStDnZD1dXdQMfPyxvwWJ46zumSGHBUwoMD9tpDDIYJhR/uBqZuJCP6zgYXicNIIL2LsAg0PQ+kQQInat8ei4TSJPV1pi5KEqkBQH9YIeobH2unCczMmuUyftD9yGjHTbBDhEfKnQrdQAuJIS1wGF2PsorlTGX9UiyLo0dlh5U32ipgxCBarzomIBl1qHlGpf+pXsYMMv9a3pIokYLxCGhy0BxDM1+0G4UhwsLAnF475RH3wBTYDEBpXn0EZ+FHkg9tu470LXjXLKU+5qCR8WneUVQ5+wMoeOGUjIUvsusBYTczPpd/G4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Feb 20, 2024 at 12:07=E2=80=AFPM Barry Song <21cnbao@gmail.com> wro= te: > > On Mon, Feb 19, 2024 at 5:25=E2=80=AFPM Herbert Xu wrote: > > > > On Sat, Feb 17, 2024 at 05:51:00PM +1300, Barry Song wrote: > > . > > > diff --git a/crypto/acompress.c b/crypto/acompress.c > > > index 1c682810a484..fa15df394a4c 100644 > > > --- a/crypto/acompress.c > > > +++ b/crypto/acompress.c > > > @@ -152,6 +152,14 @@ struct crypto_acomp *crypto_alloc_acomp_node(con= st char *alg_name, u32 type, > > > } > > > EXPORT_SYMBOL_GPL(crypto_alloc_acomp_node); > > > > > > +bool acomp_is_sleepable(struct crypto_acomp *acomp) > > > +{ > > > + struct crypto_tfm *tfm =3D crypto_acomp_tfm(acomp); > > > + > > > + return tfm->__crt_alg->cra_type =3D=3D &crypto_acomp_type; > > > +} > > > +EXPORT_SYMBOL_GPL(acomp_is_sleepable); > > > > Just because something is of acomp_type it doesn't mean that it's > > async. You should be testing the algorithm flags. > > I guess I got your point, drivers using acomp framework might actually > be SYNC if they don't set CRYPTO_ALG_ASYNC. > > > > > So introduce a helper crypto_acomp_get_flags (see the similar > > helper crypto_skcipher_get_flags) and test it against CRYPTO_ALG_ASYNC. > > On the other hand, some drivers which are actually ASYNC, are lacking > CRYPTO_ALG_ASYNC for example: > > diff --git a/drivers/crypto/hisilicon/zip/zip_crypto.c > b/drivers/crypto/hisilicon/zip/zip_crypto.c > index c650c741a18d..94e2d66b04b6 100644 > --- a/drivers/crypto/hisilicon/zip/zip_crypto.c > +++ b/drivers/crypto/hisilicon/zip/zip_crypto.c > @@ -591,6 +591,7 @@ static struct acomp_alg hisi_zip_acomp_deflate =3D { > .base =3D { > .cra_name =3D "deflate", > .cra_driver_name =3D "hisi-deflate-acomp", > + .cra_flags =3D CRYPTO_ALG_ASYNC, > .cra_module =3D THIS_MODULE, > .cra_priority =3D HZIP_ALG_PRIORITY, > .cra_ctxsize =3D sizeof(struct hisi_zip_ctx), > diff --git a/drivers/crypto/intel/iaa/iaa_crypto_main.c > b/drivers/crypto/intel/iaa/iaa_crypto_main.c > index dfd3baf0a8d8..91adf9d76a2e 100644 > --- a/drivers/crypto/intel/iaa/iaa_crypto_main.c > +++ b/drivers/crypto/intel/iaa/iaa_crypto_main.c > @@ -1916,6 +1916,7 @@ static struct acomp_alg iaa_acomp_fixed_deflate =3D= { > .base =3D { > .cra_name =3D "deflate", > .cra_driver_name =3D "deflate-iaa", > + .cra_flags =3D CRYPTO_ALG_ASYNC, > .cra_ctxsize =3D sizeof(struct iaa_compression= _ctx), > .cra_module =3D THIS_MODULE, > .cra_priority =3D IAA_ALG_PRIORITY, > diff --git a/include/crypto/acompress.h b/include/crypto/acompress.h > index 574cffc90730..5b10bd075a07 100644 > --- a/include/crypto/acompress.h > +++ b/include/crypto/acompress.h > @@ -160,6 +160,11 @@ static inline void acomp_request_set_tfm(struct > acomp_req *req, > req->base.tfm =3D crypto_acomp_tfm(tfm); > } > > +static inline u32 crypto_acomp_get_flags(struct crypto_acomp *tfm) > +{ > + return crypto_tfm_get_flags(crypto_acomp_tfm(tfm)); > +} This seems to be wrong. we are expecting cra_flags not crt_flags. should be the below? diff --git a/include/crypto/acompress.h b/include/crypto/acompress.h index 574cffc90730..07bd8f6bc79a 100644 --- a/include/crypto/acompress.h +++ b/include/crypto/acompress.h @@ -160,6 +160,11 @@ static inline void acomp_request_set_tfm(struct acomp_req *req, req->base.tfm =3D crypto_acomp_tfm(tfm); } +static inline u32 crypto_acomp_get_alg_flags(struct crypto_acomp *tfm) +{ + return crypto_tfm_alg_flags(crypto_acomp_tfm(tfm)); +} + static inline struct crypto_acomp *crypto_acomp_reqtfm(struct acomp_req *r= eq) { return __crypto_acomp_tfm(req->base.tfm); diff --git a/include/linux/crypto.h b/include/linux/crypto.h index b164da5e129e..811bfaf8b6f8 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -467,6 +467,11 @@ static inline unsigned int crypto_tfm_alg_blocksize(struct crypto_tfm *tfm) return tfm->__crt_alg->cra_blocksize; } +static inline unsigned int crypto_tfm_alg_flags(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_flags; +} + static inline unsigned int crypto_tfm_alg_alignmask(struct crypto_tfm *tfm= ) { return tfm->__crt_alg->cra_alignmask; > + > static inline struct crypto_acomp *crypto_acomp_reqtfm(struct acomp_req = *req) > { > return __crypto_acomp_tfm(req->base.tfm); > > > Herbert, Is the above code what you would prefer? > > > > > Cheers, > > -- > > Email: Herbert Xu > > Home Page: http://gondor.apana.org.au/~herbert/ > > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt > Thanks Barry