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 8AD39C41535 for ; Tue, 19 Dec 2023 12:50:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 274958D0003; Tue, 19 Dec 2023 07:50:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 223398D0001; Tue, 19 Dec 2023 07:50:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0EAFB8D0003; Tue, 19 Dec 2023 07:50:40 -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 ECCD88D0001 for ; Tue, 19 Dec 2023 07:50:39 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id BF0571C13D2 for ; Tue, 19 Dec 2023 12:50:39 +0000 (UTC) X-FDA: 81583551798.18.777A701 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf04.hostedemail.com (Postfix) with ESMTP id ADFF640012 for ; Tue, 19 Dec 2023 12:50:37 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=VYLBYsEY; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702990237; 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=HwdnkWBv46Oz1m5jKj5hBd47YbDynjuZaqswXoyySnI=; b=OSradtC9E4mgb9EU4ZNW6iV8ce6jLbs4GYpfwHVzIju+wcsuv8CMMYFlLEukVTUaWWixA3 /kJt310V/w94uGkCGRRw0YwhKe4mNc3sGqvX3bA7tz/J5q05EPBWBvmPbzYZtyNBz4ZThO P4lK89bUzpgQUxf9G6fSHa1cdFw8gk8= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=VYLBYsEY; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702990237; a=rsa-sha256; cv=none; b=5WocZjl+UdaTXz9DBOilvjDSqXTScefDabGDB/TVujGhZTr7zkAKTb2hvYobDyZcK8BOL1 ZXj+LP6N4+ILYlke2KcmSHCE1F4LNOe+efxdeq/+Sf45ZLMUvU34xRfOBD8mUGdW5piJRA ihSuwTMOAkM+DFepfaqjcNwlxW5chr0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id D7598B815F2 for ; Tue, 19 Dec 2023 12:50:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3CE98C433C7 for ; Tue, 19 Dec 2023 12:50:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702990235; bh=hXRBcR/CkDoWo+5XZl+gjuC8oYpbFZcW3b/mr+KF9Kk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=VYLBYsEYisamx0tk99NFnluRGKQ0O9dFN0dJzZtfXpr0aspbVCiXWEGuNo4tBeEaR I9twNWCpgkkAK9Dkc28tHZwuesHccJXITEEkXJ1/ZkobxgViJOm4JBFkqQZlrMfPin jKR4kdCjBKUa3YdKR0aFG5JxbfqbOqP3CXqIWyOK05mZp8djwcK4g/YqER5lNcDGZ4 3OKJ1G50jI6UEuU/SC1MZgHNhz+88bF4aKPEzpLEw4deBABtxBIocYL9LRWc725D6X RPxudwbTH3wTyb4AibD91vfEuzPJGXLOOcuDN6lkF5t1H/n/4CCbdgNJjENiQJEoEn hx7dO5HwOTn2Q== Received: by mail-oo1-f44.google.com with SMTP id 006d021491bc7-58d06bfadf8so3170569eaf.1 for ; Tue, 19 Dec 2023 04:50:35 -0800 (PST) X-Gm-Message-State: AOJu0YzrhAM5LSw54xed7fypvTBshKbT0da6ZJorTrggzI1ludT6lWLN m9bUxDh81XMILJPEJsI+9SGjL420OVhV7JKkvP8z+Q== X-Google-Smtp-Source: AGHT+IHLV35Qe4VA4rNnO1zOGlO5djKV2ADWoSTGkTId3HZua8ms5me49CWsKgEfLel8f9Q01NmNFJ2SpFdef5w6+h0= X-Received: by 2002:a05:6358:91d:b0:172:d2ab:fcd4 with SMTP id r29-20020a056358091d00b00172d2abfcd4mr3815066rwi.57.1702990234519; Tue, 19 Dec 2023 04:50:34 -0800 (PST) MIME-Version: 1.0 References: <20231213-zswap-dstmem-v3-0-4eac09b94ece@bytedance.com> <20231213-zswap-dstmem-v3-5-4eac09b94ece@bytedance.com> In-Reply-To: <20231213-zswap-dstmem-v3-5-4eac09b94ece@bytedance.com> From: Chris Li Date: Tue, 19 Dec 2023 04:50:23 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3 5/6] mm/zswap: cleanup zswap_writeback_entry() To: Chengming Zhou Cc: Seth Jennings , Yosry Ahmed , Vitaly Wool , Dan Streetman , Johannes Weiner , Andrew Morton , Nhat Pham , 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: ADFF640012 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: wnuwnn4gkwbtauqhejzpyc11z7nuhk9i X-HE-Tag: 1702990237-380494 X-HE-Meta: U2FsdGVkX19G9Y4lf8a3Kk0pPtdbuQwg256gsIw+lneMNJfFG12HU2hKF9Yo3keM/5tdmvDKdLU+9iydeCnYCs5ZZXWJLOtWppggaTVtJ6UjQ2ZWWXbxrPulGhefeDp2tJa9/bAapP2LA2umkME37KpHl0D6g9wKrIM62bocxwRflxriJtxusWB/2UwsaHD3u97oa+bb4Fv/wrij7UApm5jCeTlbpLg3lb8Abynk9FegTrPmAU/kUDeK/m+yi5g/pbNV6srjJ7aH4yyGrb5YwSZ/BPM7A3K1k1rEGpHNIbm2DfSoY75xYAFzXb0EgKuPi/8e+aNjO6Joww4XOcSCuRZTrEsStfyiogo5U0jwCwTbCeiAnOkXHicLotyGs6Ubz9+Za/H7dohRJM/GA9/sLx8R1crtiudcEEsNtLSJEZe84QD5ESMJqjFP0L/JBniV+pFtS+Y7GRFjcUdB7/VUwQVHdTjdWCt8/tZw4i7VcrdvSq9bVjodj4Z/Nr5BUAZzZnqeAyJSVPSRgOxEGzwfc3eFsCQgxhToFT48ODz8EKLANzCzovQvPo9w6wkSkIvIHYh7ZFnEM1HbIY6UBWkflRMh9uuWPFLFSm7V9N53RTBE+hMbIozgJph8gn+EWUCgnaDMmt6a57fs5afdUSdffmeVuZUIMLglPLt+zv8mP6Nf0DAVTqANbv28U0dbOeyGZ2D1lfKA1PAEglWGqlebvD4ymb7VLDaz1kCKpjsVSTX9g3X7LuArGuFbbpvFC5CB6IRUlKoVM0f3pbi/IrKKGXUltIhiGnhSJPpdjBhCan5yulFcQjmaR86TALarbi6WuGWlMye4ZcD8QEE3WdJUT7F6CmaWaW0dytN19gKfAhz0Zdge+S3CJORdzeQNVKNpTwo4YNqoWVXDoMe1+yY0H0l3dAF+BzJcmYaf7Ik4m4gRObBDTYEHbMvqp1om3IyS8P5iSzgZTjMctxi8Ekb E5fclAM4 ku62/D6gjSeEYAvfy+qVOszj3AYGK9wvyefu8GLkBi0tuT8im1ctLWH2Xy3qmHtwc671E+GPNK3eshWi9QQEswqqbwJ1/0Qnxhv5Ny7mwRENkYtPJxRMDIuxc1HlU39CfqXy9rptlG99OlSOleAY/rPepFUG65cor1D2fSSG0hpPMr9Chdn5U3+QZCLQnHjVWVTRqTDa8jY0ZBlJSiUYnifEbVso3inbm9oLgt7g8VQvPmlR1hVYykJ+cpiNquL4MkCKM7HvEZGb+W6F8ErtP7ZV4Pnr+DqUsez1dJYkpmNfrSioFiGFucv9AtmLkmYcK8it8eXBVZuvm+UjQqx1xDkZ1Jglak9n554K02RYGWBcy6KdDS3S/S8bsukVWCaOv5dRNuhU7JIXuopokU5FcfXdPLuB1PMlte2rr1e5/N2pizYw= 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: Acked-by: Chris Li (Google) I also thing this one can fold into patch 3. Too trivial to be a separate p= atch. Your call. Chris On Mon, Dec 18, 2023 at 3:50=E2=80=AFAM Chengming Zhou wrote: > > Also after the common decompress part goes to __zswap_load(), we can > cleanup the zswap_writeback_entry() a little. > > Reviewed-by: Yosry Ahmed > Reviewed-by: Nhat Pham > Signed-off-by: Chengming Zhou > --- > mm/zswap.c | 25 +++++++++---------------- > 1 file changed, 9 insertions(+), 16 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 86886276cb81..2c349fd88904 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -1443,7 +1443,6 @@ static int zswap_writeback_entry(struct zswap_entry= *entry, > struct page *page; > struct mempolicy *mpol; > bool page_was_allocated; > - int ret; > struct writeback_control wbc =3D { > .sync_mode =3D WB_SYNC_NONE, > }; > @@ -1453,15 +1452,18 @@ static int zswap_writeback_entry(struct zswap_ent= ry *entry, > page =3D __read_swap_cache_async(swpentry, GFP_KERNEL, mpol, > NO_INTERLEAVE_INDEX, &page_was_allocated,= true); > if (!page) { > - ret =3D -ENOMEM; > - goto fail; > + /* > + * If we get here because the page is already in swapcach= e, a > + * load may be happening concurrently. It is safe and oka= y to > + * not free the entry. It is also okay to return !0. > + */ > + return -ENOMEM; > } > > /* Found an existing page, we raced with load/swapin */ > if (!page_was_allocated) { > put_page(page); > - ret =3D -EEXIST; > - goto fail; > + return -EEXIST; > } > > /* > @@ -1475,8 +1477,7 @@ static int zswap_writeback_entry(struct zswap_entry= *entry, > if (zswap_rb_search(&tree->rbroot, swp_offset(entry->swpentry)) != =3D entry) { > spin_unlock(&tree->lock); > delete_from_swap_cache(page_folio(page)); > - ret =3D -ENOMEM; > - goto fail; > + return -ENOMEM; > } > spin_unlock(&tree->lock); > > @@ -1497,15 +1498,7 @@ static int zswap_writeback_entry(struct zswap_entr= y *entry, > __swap_writepage(page, &wbc); > put_page(page); > > - return ret; > - > -fail: > - /* > - * If we get here because the page is already in swapcache, a > - * load may be happening concurrently. It is safe and okay to > - * not free the entry. It is also okay to return !0. > - */ > - return ret; > + return 0; > } > > static int zswap_is_page_same_filled(void *ptr, unsigned long *value) > > -- > b4 0.10.1