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 D118CC48BC3 for ; Mon, 19 Feb 2024 23:07:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32CFB6B0071; Mon, 19 Feb 2024 18:07:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2DD226B0072; Mon, 19 Feb 2024 18:07:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1A61D6B0074; Mon, 19 Feb 2024 18:07:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 082CD6B0071 for ; Mon, 19 Feb 2024 18:07:34 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id AC49A1403A2 for ; Mon, 19 Feb 2024 23:07:33 +0000 (UTC) X-FDA: 81810091986.20.0638AAF Received: from mail-ua1-f45.google.com (mail-ua1-f45.google.com [209.85.222.45]) by imf01.hostedemail.com (Postfix) with ESMTP id 173EC40006 for ; Mon, 19 Feb 2024 23:07:29 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aRWw+xq0; spf=pass (imf01.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.45 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708384050; 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=84QvXyb8JVXCLO3ZjIWmLqrLkWXTqbXVqFdIWOBeFqA=; b=k64J+feIYAjUvoPm8/HCgihKNVAW7BHD6NkTRmInq+M6VTK+PvYltE2Qnh8lTZo9yQefzk DkKs699FXqKpl49kVeowWBkMSI/tO2VquO6mNie9wq2xjNIZHSsXmXBLyU7wgTckc+maPI TjKsas3ThlwUdnMQaCVImKrUH+QZcNY= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aRWw+xq0; spf=pass (imf01.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.45 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708384050; a=rsa-sha256; cv=none; b=GxpYCxV3faWOsp9UVqmlY4+QB4bJ29mKrlnS5ZpqS54syRbiAyoVCXGxj0IV9hsK6dcyoF OeBcnvVH9JsYGTt4X1DlGMR2Sk0vPUuTkXfHSzO6uAA8uUQYFyYLGnAxiUhifFXGAYXn0S Qx6nbsftI82oQXIA7pFCxF9ElgVy7QU= Received: by mail-ua1-f45.google.com with SMTP id a1e0cc1a2514c-7d130979108so2258877241.1 for ; Mon, 19 Feb 2024 15:07:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708384049; x=1708988849; 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=84QvXyb8JVXCLO3ZjIWmLqrLkWXTqbXVqFdIWOBeFqA=; b=aRWw+xq0CnFT0uppDcKkzdgg1VCr2IZPZKlv6toWRyuzxElRrwZNofzilcNh8oNprw zv8BP1tugLSSRSn4b3FCsWaVBpGv9chTHWrWn3P2RmXDn4adMGBbuy3OdSdYHI4RFN1d jBxRSJtsMHNs6VmUIeNHOaY131PyK3x01caHr+mn+tvvKBT50f5FMhXKemK5FK5GW6bg IaD1hAs+vjv/RTHHKdMz0Hb+3UX14xenVJUBzeKaUpNE3znkycLy+L6XsM3LMxECp9JZ lIGhs8xjlEGFdBmMW/L7HtEKNUVpGWTXwVAa13Rl8cPdNxiSiWTy25gvthcDPZpc9E8z X0Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708384049; x=1708988849; 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=84QvXyb8JVXCLO3ZjIWmLqrLkWXTqbXVqFdIWOBeFqA=; b=Uhout/DCq7xIec9cMHMiUZpzuzbLFXPMXKdCO4xF4QulYIijxtTNUJuRQ55m7dCdXH GwH2SdffZgCDxEqVnGZ12jXCkdmkasJuzd1XcXWV1R5EYzYdatzo8PLQ1szM8eAqxSJY VbZy6kJUFv43EXgIjNNJIQ+yD7vFkGxrZlMHdXJLyiG6NThTw2MYt1BnmKIz29iAclhr OyPLbUz483simj1GlZdaePojdI56xACEUcUCnWUGAhn7xA/u+ILXYWAEXhJvaDM/dJ1o Z3D+MN4Q0SRCThu14DMz02zdctzCdIqHQmO1JAq8YSdNJBKJ060Oi0QNdsUHushvYbFn MZig== X-Forwarded-Encrypted: i=1; AJvYcCUnlPLbGfYAw65K+ajxjcEoPF8Lpo6S3j4+bSv/6JxGe2YhuksRIt9VozfhBNsBycOFGglpcKo82BafOtDmth80pt8= X-Gm-Message-State: AOJu0Yzi4Fb6+W8Kor7dBIaqjR5L/CzIMi0KvdxC44WxulqV+qqrgDif MGVcHAkC//LfsXKr4NS0yUZnrvT6YuQOpighFTBUljyvH72vT8+KAutlE4q55p9Mv226mIE7Fha X9iD25zzmuu8HB/nMIMD59fdKfh8= X-Google-Smtp-Source: AGHT+IHsJkS0eDTXGnGDk/orxdgfM0pOIAe0qiGz0+Zcgk7QU5Rw/T2eL0zVU2dUIrVeB3RVfeOVX1meaouewu947k0= X-Received: by 2002:a05:6102:5110:b0:470:6d93:97fb with SMTP id bm16-20020a056102511000b004706d9397fbmr565960vsb.4.1708384049006; Mon, 19 Feb 2024 15:07:29 -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:07:17 +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-Rspamd-Queue-Id: 173EC40006 X-Rspam-User: X-Stat-Signature: 9drrtawugre3r76sat1yqxxtfm3zrm5q X-Rspamd-Server: rspam01 X-HE-Tag: 1708384049-640614 X-HE-Meta: U2FsdGVkX18eKrsZm/7IZ7KWHnBcpXcAvAHaOfToZ76ET7q+jYUmh4qrkcLUWqd2QLv/W8t8fj3snT5M0cpsn3jZLSb6P9NAywoFIjuuiRBplyJLNIlUp3HWE0kmfadH9yhiidehZNScO/izCKwGieSIpnc/ILjqaOkUOovkQOFcO2vROglPlwBI/qrDeH1MGydxCGq/YVoV7RADxTrXFUUxu8VpoY320wklSbhtrKpews9Aeh8YL426t07lES+VyYrTTTiazLZZhttXa4kJjrh1+oDkzFHZ+izWn4jucZ+6mB4Jsni99Z+hamx0YYQ4C4VhHdUDWR9I2Dw5oC/sIsk+X1HW9VYOSzs8Wm9LZqLLFodOFBG57YloDuyIjBO8Q+rgbjj/z8Yg1jv2F/xcNYOL+adNjG3OHPV++dPzCKqls9o9McuuuQeCVF0Xuq7WTYWh3jZJauJeBsPuZnV6F6Bdz97X6vYPhfar90e3oAnXhY+FEaVtkhX1WkoYZdgh5RO7ntOYqGQdS53ymsM2OF8DaM7a8MiY5bfH3BnFWWbagMqmuWUJYlX6uCpy75dauJe6u1fmVkIEyLh7nFBYQJoZdfzwP0PMlanh6lExgeqA8U7b9kHLT41T1MqhhyTVI2ys1P05O9tSovXUCnCU4jWSfL3hFrGmFpbjY5MbS+gUozGLj7AiTN0KoiHWVK16waPXu5PWNS0/enOnVsrA9kCeiU0EbLT1zgsIVGw6O9xukXtevq2VUf4O8ajDoU1oNAnz/wquWYAcZATeKlP7PJZakJKVYXPVfNddsqbACSv0CR1Oay0AWEPeRYrfjucXYfqQge9zT330TyBWpL0f1Vz9NEkOwgf5sR8UrjdzYuS4ijge7mdDitso08/ZKbck61LZKn4KTcbCF1ji5T3koXlRHzN8kja8rrGb3xO4vdzlkYemv6E3pApMq3gPZt0J+HVzOlCqGzrkwXeY3gR ikPYP5UI 6cG/nzlS0WnSWqC6owQpv82PS9Nry3b7i3ypqxXazzOZ2MIBLvIrRSzvknsJNjpdpzvOsONeuxW7qVo5MtAr74tDohQ== 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 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(const= 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_c= tx), .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)); +} + static inline struct crypto_acomp *crypto_acomp_reqtfm(struct acomp_req *r= eq) { 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