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 1C79BC4332F for ; Thu, 14 Dec 2023 14:45:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB1416B02A1; Thu, 14 Dec 2023 09:45:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A600A6B02A3; Thu, 14 Dec 2023 09:45:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 927DE6B0426; Thu, 14 Dec 2023 09:45:39 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 7F16D6B02A1 for ; Thu, 14 Dec 2023 09:45:39 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id CF9D480CEE for ; Thu, 14 Dec 2023 14:45:38 +0000 (UTC) X-FDA: 81565697556.17.1A2FFF5 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf14.hostedemail.com (Postfix) with ESMTP id CF5B810001D for ; Thu, 14 Dec 2023 14:45:36 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="fJsL7/uF"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf14.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702565136; a=rsa-sha256; cv=none; b=vvcE2aCOwdA5Mw8YUzAhhjvdr42ezktQLrNNIxY7jkfSQE82PuXJBgGrBUAi+TR8J8tNoc hZ1d0ABWM1Lx96P9Y/qb74OdinyHbHW0aR+ppDquuMUTJ4m+UAcFTEHGqIBFetHnv41seQ fcnO1q5vBWuL+pZg0bfq3h1kfwyspnE= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="fJsL7/uF"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf14.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702565136; 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=tF4v5FAsSpR40LsU66vSHRRQwz/YE34tpX6gezwc28s=; b=2VU/MR3D4pCOlo3CxnTEcszDyij5x5N8nK4TiLVvNofb4LJfOq5lf4/ZwhrnDeUvSA/fED O/E8iIxP3Bwi9TgaocW2LIZ5IUrlLbukCWcwXv1apuvdx+EWYoEL8lf7uFXRqWwDQh3FXh 0XKla88HlqyNplYiO2pmakuLYvcTcd0= Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-6cea5548eb2so7522561b3a.0 for ; Thu, 14 Dec 2023 06:45:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1702565135; x=1703169935; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=tF4v5FAsSpR40LsU66vSHRRQwz/YE34tpX6gezwc28s=; b=fJsL7/uFPslMsM2MGgjE74hGmCaLiA6WWWpMgjtVMsI89vuE6+A48cL7iLWqIG5HOp 1FHFVmLlWqAa1Ikq4tQ7inBd697czXu1iYQEsT/AT/7zO6UzspiFiA3+PeauawRAXu0A LAZJrHqIokAd2Vix+srpzJwGG74+xHApTy30TEOfN+/XpVg/n6HmkWuQSm9gD3gSPhIm hzqEK9WZqbXTXdqTVdLCDieBrB/gVII/fWE0L4jVlmi3EMQyP4yNAoOaAJOaqh7r0Y12 0iKEl7k1+57jW0E5khx/OfhT+GYSWK2y/dGU5LESWO7WFdd7ZrOPAwM3joSqI7lIa67v UkZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702565135; x=1703169935; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tF4v5FAsSpR40LsU66vSHRRQwz/YE34tpX6gezwc28s=; b=NmJGqTspaENqxxj/rmXkHy4C6BOLG8uJHfrWwImNi5zg7zQobRr0LZFLnvawYCZbh9 IgTymC9hpYUyTL/hisofjZIZuwAhJeP9vyWSF5Yo4g+/NCEWEvi554/90N4mukEFrmfX 2cdwEaeQJJCe46mnhyAeEpGF3lBHTdOijnMT8p5r6D72PGYR6seCun9P9ozoSDhzULRc fhB1IutZ02l4C7JNdtSkyW2Km+uKZxa4+jfMnDhbqWD9vfKWvUtRSkTxlPcxWkEjFqK3 iudPlPDIQV/33s2k8NMAZzvgRYR0xWBryBxOJXRzQmCm3sH23fd55UYZUH1B8+o2RMBt Sd7A== X-Gm-Message-State: AOJu0YzoLxQjoBilxsEM5YKbjHGnPrfgq+IUgIpHg6sDMB1vmvdfaRGv HBVziV5XaW7vUa7keK22rNyAZw== X-Google-Smtp-Source: AGHT+IHPGLznweQvZPO6iY6H8z31jF5pOMSZk397XcfhsTzBtXxNOM0a4urSaMagtu5X/U43ymPhLQ== X-Received: by 2002:a05:6a00:27a1:b0:6ce:6f97:3715 with SMTP id bd33-20020a056a0027a100b006ce6f973715mr10959891pfb.64.1702565135434; Thu, 14 Dec 2023 06:45:35 -0800 (PST) Received: from ?IPV6:2409:8a28:e64:34f0:4525:57e4:217e:6e2c? ([2409:8a28:e64:34f0:4525:57e4:217e:6e2c]) by smtp.gmail.com with ESMTPSA id p25-20020a056a0026d900b006ce3b01cba2sm11022404pfw.108.2023.12.14.06.45.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Dec 2023 06:45:35 -0800 (PST) Message-ID: Date: Thu, 14 Dec 2023 22:45:22 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/5] mm/zswap: refactor out __zswap_load() Content-Language: en-US To: Yosry Ahmed Cc: Andrew Morton , Nhat Pham , Chris Li , Johannes Weiner , Seth Jennings , Dan Streetman , Vitaly Wool , linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20231213-zswap-dstmem-v1-0-896763369d04@bytedance.com> <20231213-zswap-dstmem-v1-3-896763369d04@bytedance.com> From: Chengming Zhou In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: CF5B810001D X-Stat-Signature: kbeudhkhgomgzitdyc9zbztngnn1js11 X-HE-Tag: 1702565136-975627 X-HE-Meta: U2FsdGVkX19Dy+sHGVUFXTJ5ZpJK66NUuX9GWP9X1IzGeKne+v3GgiPH3YFvyeIJA70vAOGqhzx/PZBZ8lCObLuO9W3W8QJulolGHeSAX9gyG2AwaqBMYLlILbUcQOjMq1q3zaS7GHKlMqtRRLKz/oX2Bz0UWth2UepMzE5E2ME/klN8HP6k94adRrC1y4b1HduhL++YPYmhZyQXib3rZAKupkTXjhHEGBgCAMD9DqiimbXSM0yBiS+dWL/qK05sIQ76KrLvLj+S6QVMQ8vIhEbu/RjwAzU55zL8OTUNV4YcNZeFhV6jJQ7MUHCKbTbIW0C0RrENohexQwM2LOJ17UzWOIm6IqNxibU8QFRgknj9ilt9TE8tIJk5LI4Dj9QpIGQ9zAPPbXVd4MPKZ0mV+tnzcQm+DgSIT4GZZKBiYDXy+FwCcIptljzOhK7rlU8OtPtU0tU4mHGpto8SdyziwcY2uscxJCf9iT2Z7Ws9d1Ymd/ZM6C4KfQacm8GI/MHWtVM15vTqSC7d4oLxpzzKhxIZEngs6XRdCkOIBFltb6NLwLI6NQpkiF4c+JqlU9V+K+6SXS6Dtjm38x0i9EtFbZaLf3lRtS2Z9pM4uRZljz6AkvELiIxMiH5HAC6nHWRrQTdaN7DIYTbLwUNAebfJTb4nnmnjzLU4pzJayT1/OaxDMubQlDWzRuhzu/XPGkv0hmT9yHr5cwBVnUY3rSO8E/eTTBRwVmDTHQNAEcvgHXDmXULBSh/Q0sAbgyPEUrLPGkZ24GrMmZ5Ktbn4+70PvrW0pYKbEcnQcyi1R2aU3Dz2eD92qZDlrr4WobtRy3VKDUIoENMpIzzU3bEEJSW07y1kDd3T0j/RP6eNFroCeA4Ng3AZECTYTyhcUdA0JHQv5zSD0zy1Wz4qaniM1xdG8TbwfgeFUJ5B3LqMxCcZaQ/rat38peRthgmgVqiuMB84zpA29hEgr3daSssMnfM 5SwWkvNF j+Ev20zjttYHchIuAy9fCu83/EbE/dbjv4dcYVyPSLKHTvvT3//B6eBM6RS75B/02VL39Tc/y9rdWul3LMSyi47oRJRxR+KHgFrbBqJ7Qbl5ATLScDfqqWePEpnQ1Cck4fiL/mTlQNIdGDdOHWgjN5vE37F0PIc78HfBcrZ7xUY8DdGcMLpv6/tG+bum39y3eUIxTek9cIL0u8iQnlNRiJwZcfJ7UiIj9GS52I0ehE/hx6C9TDbpaBe9gCiLgjbsICleKbrpZheP0+0aKLbPHebb15u0AnCKafPaDcQQXRiQl4YnpXdlnb0hHwZ4A7OL7OaCMpF4qt12pvmDtWzYyDXTqbFwSGyg1OSbOQ0XwennF4LzQWVSlz/CZtGsRbS3gCCJKSI2Kup0pKD4+P3AyD78qxus/nAAMaHwHAzw+/mGW9KZtGRiafDPNlWKWYbRpawXZ2akVYmnNoBv/7VMQJfLVKoKy3FR0ctUavA3yDYc4ue0a1nkyvdTE6O3OFBow3Upe4Ogyu8WOyYBdenRJJrVWwUM86DLjgkxh 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 2023/12/14 08:52, Yosry Ahmed wrote: > On Tue, Dec 12, 2023 at 8:18 PM 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. > Ok, will put it first. >> --- >> 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 = PAGE_SIZE; >> + struct crypto_acomp_ctx *acomp_ctx; >> + struct zpool *zpool; >> + u8 *src; >> + int ret; >> + >> + acomp_ctx = raw_cpu_ptr(entry->pool->acomp_ctx); >> + mutex_lock(acomp_ctx->mutex); >> + >> + zpool = zswap_find_zpool(entry); >> + src = zpool_map_handle(zpool, entry->handle, ZPOOL_MM_RO); >> + if (!zpool_can_sleep_mapped(zpool)) { >> + memcpy(acomp_ctx->dstmem, src, entry->length); >> + src = 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 = crypto_wait_req(crypto_acomp_decompress(acomp_ctx->req), &acomp_ctx->wait); > > We should just BUG_ON() here directly an remove the ret variable. Ok, thanks!