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 87309C3DA6E for ; Thu, 4 Jan 2024 00:38:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 00FC06B03CF; Wed, 3 Jan 2024 19:38:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F01506B03D0; Wed, 3 Jan 2024 19:38:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA2176B03D1; Wed, 3 Jan 2024 19:38:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C68B26B03CF for ; Wed, 3 Jan 2024 19:38:54 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 86D3D40267 for ; Thu, 4 Jan 2024 00:38:54 +0000 (UTC) X-FDA: 81639768588.07.228C3B5 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) by imf11.hostedemail.com (Postfix) with ESMTP id F0F1A40025 for ; Thu, 4 Jan 2024 00:38:52 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=DFV9JulS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.54 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704328733; 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=LdFZ3Tk4i2v5Ki/jD5QceKjDKTifBKGWYuLRGbT2nQA=; b=h3U9bWOzBN/7lxzH3ckIfOJcZUbwjOAnR3AxWTU9xwbX6lkjtX30dIa93abIQhnGaj+gGE 8Z0AayHZk6hvDl5yN0iOWS6LxpFZN0ecr0wdgqK7aLzM6+w2JIq/PBrWy0orI3W241VN6i XAHFBhe9fmtvxMASBGhUm9F/3ACTxbg= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=DFV9JulS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.54 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704328733; a=rsa-sha256; cv=none; b=uW149gnyBh5zuNLd3S4nDDzVifvbUslScn/JH4EX4eEtYT3tAVZRZdU0cY7PsvGpHQiFsw w7+39UAmUhFp498u4stSdOkt1VKQUAgQViga53belLZLwjg1FmcmO8luYj7ptmpzbmQ68v fC02+745mQgvecpqZnpHaX7CCByToqw= Received: by mail-io1-f54.google.com with SMTP id ca18e2360f4ac-7b7fe0ae57bso640499039f.0 for ; Wed, 03 Jan 2024 16:38:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704328732; x=1704933532; 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=LdFZ3Tk4i2v5Ki/jD5QceKjDKTifBKGWYuLRGbT2nQA=; b=DFV9JulSzB1m3VNi3JEIt2lIUjKQyLIq8R563ji4LXZmMPb9P2bZ46MmW5Iv86nmZR V7muoeHmsJ+9Vw5nLiA6SRcCWatRH5bYHG0TK0B5qcYC8KbGvgfBP4hFdY5wnjcMmNth Sbmua9saYlZlddnweY7Ij5s1wmRVDnv1JhZfvTU9j7wHlgWvYLsbFNMs7JPR5UFg28MX 0WUzdwTC/1Dzt4QiNrgreVBHPOCsl8DinUDg7ATzdvjWSfcqJnG6hbZRJbGuRaqYpiMa YjPwV5VEV3xOB216zORax7IKERmV3Gk4W46o8G7WTFw4B+J9mOe6kflRNMbbBi4QMKWd ACVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704328732; x=1704933532; 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=LdFZ3Tk4i2v5Ki/jD5QceKjDKTifBKGWYuLRGbT2nQA=; b=g73IrpSYIQIhzlwam7gBRPbuU3wRjX4s4g3vfKFu3+4HkLYE9P9ctp6ql911HhmxqL lkVwgL8poSllc6nqRdyMKgSnoyTIKbOwg5+EzX+3LFlAS6NWRKB30O7pMPQ4Nch4nO9g BMSbwMYhqmNv5p/+ctmgqsWo7buP147xmGEE/KSlgSzR4pA1NM9KgAyQfLwbZl8Hi5R7 ac91T7ede1m6cm5TJpOtZEgoerxdF8Qbr5VTloi3OOg5BTucEC7oBxN185dPEP9YGhgP ueoYS/J2CpKCcUBV6Ed0bAQ+3px1qTg55HbTVY9HuMjyWXdAkCABh/KnmAuLVP1xe1wP Rqcg== X-Gm-Message-State: AOJu0YydeoQMzRFiCH3TpRhv7fg5Kj31CfQl0bh4XIQVd+CDT5le/wUf C+oNS/lFmTyG3mC2QpaeRMSeHWsnd8uVsPBsay4= X-Google-Smtp-Source: AGHT+IF/4lBl1Vvdf7uTT3qi0hf/ACw1cp7fc1TK7LsZJKCrcz7Ep929X6o1Bq0+2vgJ6b/KNFs4rDmdocbi7z8oygE= X-Received: by 2002:a5d:9f0f:0:b0:7bb:bd06:d5f2 with SMTP id q15-20020a5d9f0f000000b007bbbd06d5f2mr3391602iot.35.1704328732100; Wed, 03 Jan 2024 16:38:52 -0800 (PST) MIME-Version: 1.0 References: <20240103095006.608744-1-21cnbao@gmail.com> <20240103095006.608744-3-21cnbao@gmail.com> In-Reply-To: <20240103095006.608744-3-21cnbao@gmail.com> From: Nhat Pham Date: Wed, 3 Jan 2024 16:38:41 -0800 Message-ID: Subject: Re: [PATCH 2/3] mm/zswap: remove the memcpy if acomp is not asynchronous To: Barry Song <21cnbao@gmail.com> Cc: herbert@gondor.apana.org.au, davem@davemloft.net, akpm@linux-foundation.org, ddstreet@ieee.org, sjenning@redhat.com, vitaly.wool@konsulko.com, linux-crypto@vger.kernel.org, chriscli@google.com, chrisl@kernel.org, hannes@cmpxchg.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, yosryahmed@google.com, zhouchengming@bytedance.com, Barry Song Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: F0F1A40025 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 3hmn7dpdc8u1j1t8w6wxonapr8cup5b8 X-HE-Tag: 1704328732-833270 X-HE-Meta: U2FsdGVkX18YZnVA7yw1ijR/9jxU0UWTH/VcB8BeqI2GLtmf7501ZqHiLYOkaL9V6D7sprkXPVJjQR0R7Uz8SZJQ5KHbkR5gpAY0WBzT8FCAWcEI0fk8foVZdopGcovHh4P4Dgp4soXqjKnfXGpVMcG3kEpuyqXkfb9RoraV+jMASb9WMWcawSKblCzvVzv0O3ERZOgSqJ9xFpHoLbNxtCf5Mo8nJSOEy5RpuxaTIIg+l2mJlLXXexDZrK/ZO/AUdSC+mii0QgpKGBwggcQYz4JcRP+5N98jAiQ/kBR9tUogFqnvRWyTwGq4UPDCIqvT0E6rGZofwozd6Yb6rPMjVa0lgMFAMkV480MkcodfJU2vQRAGg/bBWcHI4ZUA3p/rQ6t8KoxZnJLWH5JbgS0M5nDFz90yGCFbNCKUr7ebkLjuqucHu/EiCGjZDEeRm3cafUsvrXGdmkPCuhr8y+yNN9VNF6Ms0yLsNKHORJjDDby6U+qQCaGDEA9grFD1/AYVoi63Mvpgazd18Sw+HsAf5z/nS6XvZglDtcd9ZvzBIm8R2mteJUWgZK5/BokPc5YATbvYuqW81mxwHgWCXvX/pPlOtQ7R7VPipUucacek4GewMhLbK1ydI70GVYMqPvEPj830S4Fb3U4A6+8yIH+hnibRVX4OhtNeYxe0qrfDRSLpC7/zTjWJR/LBJKSovuDzymACyb4tKujNYgrVuiLvXHOpfwp3lI1SIOedCuvMsBNNsOXhmpTJFnDHwDczm1iqa1NvszG9yw1px0O0vkXCsWQZ3x6X+IploXUpbEwzVHOLo3rCJIt9sNPxKuy+jGKpMotWho/R0Nygk6vGip2We3rNvbkT4GTtvQYvpGzb4rNFlHl/LfVze0Wns6TVotjSufcUraWcr1FEqnkDo7xrLgOCNKiKE9ECwCg8/5/Bxf/ijLlV2+6y3xtwoyJuaRf+LbpyVxxVMMb11mAns7h LrdFS8e9 mMTolROQzv/9KtqjDeergcA9wVW89EPcrsiED 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 Wed, Jan 3, 2024 at 1:50=E2=80=AFAM Barry Song <21cnbao@gmail.com> wrote= : > > From: Barry Song > > Most compressors are actually CPU-based and won't sleep during > compression and decompression. We should remove the redundant > memcpy for them. > > Signed-off-by: Barry Song > Tested-by: Chengming Zhou nit: it might help to include the test numbers in the changelog in this patch here too. Save a couple of clicks to dig out the original patch cover for the numbers :) > --- > mm/zswap.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index ca25b676048e..36898614ebcc 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -168,6 +168,7 @@ struct crypto_acomp_ctx { > struct crypto_wait wait; > u8 *buffer; > struct mutex mutex; > + bool is_async; /* if acomp can sleep */ nit: seems like this comment isn't necessary. is_async is pretty self-explanatory to me. But definitely not a show stopper tho :) > }; > > /* > @@ -716,6 +717,7 @@ static int zswap_cpu_comp_prepare(unsigned int cpu, s= truct hlist_node *node) > goto acomp_fail; > } > acomp_ctx->acomp =3D acomp; > + acomp_ctx->is_async =3D acomp_is_async(acomp); > > req =3D acomp_request_alloc(acomp_ctx->acomp); > if (!req) { > @@ -1370,7 +1372,7 @@ static void __zswap_load(struct zswap_entry *entry,= struct page *page) > mutex_lock(&acomp_ctx->mutex); > > src =3D zpool_map_handle(zpool, entry->handle, ZPOOL_MM_RO); > - if (!zpool_can_sleep_mapped(zpool)) { > + if (acomp_ctx->is_async && !zpool_can_sleep_mapped(zpool)) { > memcpy(acomp_ctx->buffer, src, entry->length); > src =3D acomp_ctx->buffer; > zpool_unmap_handle(zpool, entry->handle); > @@ -1384,7 +1386,7 @@ static void __zswap_load(struct zswap_entry *entry,= struct page *page) > BUG_ON(acomp_ctx->req->dlen !=3D PAGE_SIZE); > mutex_unlock(&acomp_ctx->mutex); > > - if (zpool_can_sleep_mapped(zpool)) > + if (!acomp_ctx->is_async || zpool_can_sleep_mapped(zpool)) > zpool_unmap_handle(zpool, entry->handle); > } > > -- > 2.34.1 > The zswap side looks good to me. I don't have expertise/authority to ack the crypto API change (but FWIW it LGTM too based on a cursory code read). Reviewed-by: Nhat Pham