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 5EEB6C4332F for ; Thu, 14 Dec 2023 00:52:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE0BB6B0276; Wed, 13 Dec 2023 19:52:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D67136B027D; Wed, 13 Dec 2023 19:52:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B948B6B0282; Wed, 13 Dec 2023 19:52: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 9E7D46B0276 for ; Wed, 13 Dec 2023 19:52:54 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 71791A1F05 for ; Thu, 14 Dec 2023 00:52:54 +0000 (UTC) X-FDA: 81563599068.18.FA7C8F4 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf08.hostedemail.com (Postfix) with ESMTP id 93262160013 for ; Thu, 14 Dec 2023 00:52:52 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ppzA2GBV; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of yosryahmed@google.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702515172; 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=AQez4IJe2pfRQhQRsqZ8uM1oyufL0YFowawEXGTpQlY=; b=i1Z3U/RE6J1e/OGTmVNalbWX8sXxZSgdK7rDiE7yWdn/Ep0U43rZasSknfiVUFa4g0X3J7 q7vtRxUK3+Bm7QRufc2isBwrWopwdZ5SJbK7KTqR4lJjtakXdfqejA31mzLK52MGZtCNl5 A/qZteAhhfU6NIZo4TBZLmoPyVQ8rNo= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ppzA2GBV; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of yosryahmed@google.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702515172; a=rsa-sha256; cv=none; b=3pckyz8/i9Us1LmVXEL7d9Hl4F4jyP4jh76h7mnsjGmCLZzxeQbA6+PZ6+FZ27OzntktRo y+lRjoPGQRiorctRK2p57CW1RJxKwga8nMP5AWzbUsGrLEnW02mcA2t/f+X1xru3OXpqEx MM+4Kq43Rm2F5vJC4tOiJuaoHIk2/vE= Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-40c3f68b79aso56461945e9.0 for ; Wed, 13 Dec 2023 16:52:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1702515171; x=1703119971; 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=AQez4IJe2pfRQhQRsqZ8uM1oyufL0YFowawEXGTpQlY=; b=ppzA2GBV4m9ZB3geP2zNBvQr+rbL44fgfAq8T8XfKN/pvN4+Wp41GeBR9Wj0jCCNri xuks76lka2FBKexU9xDVuy5gaLfVcmvEK//1aOKhE3LCmHWtWKPrJwi5NYkbf2DVRjI8 m/WlbCDOTNC2iY8itmx6hqwTnl6dY6A9K3TjG0a/7wbpkBsItnzZ4tKAqiXy6L2njkIt 4v+A0tfkmsuWQx7ruRhEO1MBjy/N/RkyhsCDSDmqD8WTtqwAtHwSoEpAc/x++5KWJtaR I3s4+KIKMjdFM9yWuKmlWLkSF4b9lQO52xCuWytnMNzs3ZB7zubns11YJjOcQswVxDqo xjWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702515171; x=1703119971; 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=AQez4IJe2pfRQhQRsqZ8uM1oyufL0YFowawEXGTpQlY=; b=C2aKk3cw2tC4Sb4aXrcKMsbN8Z0jirAcUgu3p/3E/mat1uwWvKJpZQLGyvC9zopa1Y +SDGKnfaLv8f4wPO2eqpikUluCxqiR8vdutZhoYtcKfqNdjav5HiqkwxdtvWTlm7eb33 rLHk3LnjM38X9aQWPgR8AnnCXPg33dxtBPLN6zd/gZlAf0RyoTSsLRsWJ7uc+fvceXrP ff8OQoaFJPsrBYpQI0KJVUXBopNe5dYup9df0QLV62NiFcTcLYM9/fktzsymmiS94KX/ kVA8TP0xJR+0mXvikZZXximKXXqO5DUXP/9vm2Z3bhPFm+FTp3Tqdlt4M+gVFtCrqHU7 hqgg== X-Gm-Message-State: AOJu0YxtZq3PKKPb2CTffcD6RTy3tf+cxEQek9+L8BLggmX/LV/vsz1r 0FYl8/z16oRNZWOfkDt9M8Qk6ICxECTEJIIxcMBJwQ== X-Google-Smtp-Source: AGHT+IHr9ZBkAWXS3rP7eFeIHcUIZb0hzq6/5MRV82p/Lp0po4o1kgQnKaF/79ll9K6VTWHl69C4cLgR7V26czfUqao= X-Received: by 2002:a05:600c:3ca5:b0:40c:4b42:a1fd with SMTP id bg37-20020a05600c3ca500b0040c4b42a1fdmr2539677wmb.34.1702515170906; Wed, 13 Dec 2023 16:52:50 -0800 (PST) MIME-Version: 1.0 References: <20231213-zswap-dstmem-v1-0-896763369d04@bytedance.com> <20231213-zswap-dstmem-v1-3-896763369d04@bytedance.com> In-Reply-To: <20231213-zswap-dstmem-v1-3-896763369d04@bytedance.com> From: Yosry Ahmed Date: Wed, 13 Dec 2023 16:52:13 -0800 Message-ID: Subject: Re: [PATCH 3/5] mm/zswap: refactor out __zswap_load() To: Chengming Zhou Cc: Andrew Morton , Nhat Pham , Chris Li , Johannes Weiner , Seth Jennings , Dan Streetman , Vitaly Wool , linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 93262160013 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: dpint8p8c14dfjegg9bsojbpaznmgcc4 X-HE-Tag: 1702515172-970805 X-HE-Meta: U2FsdGVkX198W6+iGaZoMnUeSUJ7OUvCZHcy0D2/AIWzod0TtExu6Mrp4LNSN3TW1NV3Jkkg+7p6IME34+f26ugxlQKbVFEimr4a51b7cyTvs2TTsJvuw9xu3/zYsdVvi8ki68KaxGptnhnJMn0j3+dz32jssk4Ljhf2xis+gCPhpd9JL6SJQLFRSE58QXdCRFw0PQLPTp7tmpach3Ncw+5V1IVfwLnFgQZ8/9zWo5WJBzVV+E0MgiDtI3h6ZsjD/O2JaFhWmq0po3INJkJ4QBkss6sCjDB85hWYZYKsk+5AUc3bU/jNqHAikQqcPSUMbuu/33Ki3v6HnUJsA1RS88mTUa9a29hk3zOWwKVqianfvkRH0PjCr6/w8jTZeFvdj5OrfFcsb58sYWLGetQJZjxFabu7cwrraZl4Jj1KiSCoXN7tQeWzQIsa4qkz9tKuSw/fC/Daej1xEFKVOg7QLRs1mu9qp7rIrpN437tDeSM5uR4MNqHztfc+RC28yNc/4Ta6UGXRt7jFIO8kiOQyphdHfkGEAN92U635LhRilGDiL7S05HjDe5xEydEJRX99GqVnqxUENrNIXb7QKr148R4M/IbBHq5QbwIB7HrLPajZ9R+QyjZpal+PEk8fVpISliV9wRUX7Q7JmnsJS1g7IaB/v+SHkuqq+7MNvWPZviDtgSFTOasBk/Sh28/G/sV9viZLIXxQQvnJG3ewnx4TtVDEmlnLl6cAwGwoujs47X9BUDUwTQYeEF7q+EXN0qWwY+bR1J9lTUAf4inD+LAz8ztdnk9T7/FqRXx3RCL//SoJgFS6J2WnGsuc3X/Cqr8BpUKBHyDMkMl078g2ELcVbsM7CH1Wdnx1jzflL6s5YlxvV/Cpf9PtjxFqRGf53skoYgPQjKHvwzkSPMYdjueSLkDsiU4S2zN8VIpgEHUsO9ZfsoDBctByUqq7ObcxhGTlOH4YVH+/zKYQfagPLxx kU90S5ef uIHNWAGYXMXAFTYj6C/7YxYSedVawhdG7lVokiK4Bv/d1cfiVN9HQdAJKdD/6IoFT//giHfFvaqQoV6Rays/JHbFfC8AcUC+SrTfWPTvu/iRyrJJENPRgA/xgtlGXw6w5T+WzfDsduPnhkdsrM1sLfQbErb4fUGtd1QkXQzbUFSEuS0VWm3GgQz1sjhqsHYTEVWnAjZkaxYlSEOIrZeBsRXGJJW7mkFCKcWBykItnwylZ1Aq0FPUbfcxBB9J2rRgfuZuX8HekjYPxW2gISKB/z3W3bklFUuxWTz+fJgjTtvJUhuATgVtIiEo0OEuwq10/4rezvNHm+ybmy2/k/36vRMZDMEbdtDTeR7mW 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, Dec 12, 2023 at 8:18=E2=80=AFPM Chengming Zhou wrote: > > The zswap_load() and zswap_writeback_entry() have the same part that > decompress the data from zswap_entry to page, so refactor out the > common part as __zswap_load(entry, page). > > Signed-off-by: Chengming Zhou > Reviewed-by: Nhat Pham On a second look, there a few nits here. First I think it makes more sense to move this refactoring ahead of reusing destmem. Right now, we add the destmem reuse to zswap_load() only, then we do the refactor and zswap_writeback_entry() gets it automatically, so there is a slight change coming to zswap_writeback_entry() hidden in the refactoring patch. Let's refactor out __zswap_load() first, then reuse destmem in it. > --- > mm/zswap.c | 107 ++++++++++++++++++++++---------------------------------= ------ > 1 file changed, 38 insertions(+), 69 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index fa186945010d..2f095c919a5c 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -1392,6 +1392,41 @@ static int zswap_enabled_param_set(const char *val= , > return ret; > } > > +static void __zswap_load(struct zswap_entry *entry, struct page *page) > +{ > + struct scatterlist input, output; > + unsigned int dlen =3D PAGE_SIZE; > + struct crypto_acomp_ctx *acomp_ctx; > + struct zpool *zpool; > + u8 *src; > + int ret; > + > + acomp_ctx =3D raw_cpu_ptr(entry->pool->acomp_ctx); > + mutex_lock(acomp_ctx->mutex); > + > + zpool =3D zswap_find_zpool(entry); > + src =3D zpool_map_handle(zpool, entry->handle, ZPOOL_MM_RO); > + if (!zpool_can_sleep_mapped(zpool)) { > + memcpy(acomp_ctx->dstmem, src, entry->length); > + src =3D acomp_ctx->dstmem; > + zpool_unmap_handle(zpool, entry->handle); > + } > + > + sg_init_one(&input, src, entry->length); > + sg_init_table(&output, 1); > + sg_set_page(&output, page, PAGE_SIZE, 0); > + acomp_request_set_params(acomp_ctx->req, &input, &output, entry->= length, dlen); We should pass PAGE_SIZE here directly, BUG_ON(acomp_ctx->req->dlen) below, and remove the dlen variable. > + ret =3D crypto_wait_req(crypto_acomp_decompress(acomp_ctx->req), = &acomp_ctx->wait); We should just BUG_ON() here directly an remove the ret variable.