From patchwork Tue Sep 19 13:55:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Gomez X-Patchwork-Id: 13391490 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 F4224CD5BC2 for ; Tue, 19 Sep 2023 13:55:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8E6EA6B052B; Tue, 19 Sep 2023 09:55:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 897206B052C; Tue, 19 Sep 2023 09:55:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7100C6B052D; Tue, 19 Sep 2023 09:55:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 59C546B052B for ; Tue, 19 Sep 2023 09:55:54 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 26B541A0DDE for ; Tue, 19 Sep 2023 13:55:54 +0000 (UTC) X-FDA: 81253495428.09.FABDF24 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by imf11.hostedemail.com (Postfix) with ESMTP id 2ADA840006 for ; Tue, 19 Sep 2023 13:55:50 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b="S/I8tzNo"; dmarc=pass (policy=none) header.from=samsung.com; spf=pass (imf11.hostedemail.com: domain of da.gomez@samsung.com designates 210.118.77.11 as permitted sender) smtp.mailfrom=da.gomez@samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695131751; 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=LMHYH9ZTyrJA3zeIZ8Cw61+9DcuHoaxdnpNBuheefF0=; b=eKbYEPIo1+d58YCjcTKNRrX3roJibqbtXlFDi7JmQ0YE2H3SOfhDPkGOVRJDX75aNv993T Z+ETxg3VoXsfJUiDE8S/WEGzaiaPpRBhbu+R2j9qNs3URTpfOGbDPOmZRW4wjn8cWMKlGo 78NOb1fatCsakzvpmgnu+5+uWKmXu08= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b="S/I8tzNo"; dmarc=pass (policy=none) header.from=samsung.com; spf=pass (imf11.hostedemail.com: domain of da.gomez@samsung.com designates 210.118.77.11 as permitted sender) smtp.mailfrom=da.gomez@samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695131751; a=rsa-sha256; cv=none; b=uj+8JFuzl8/0uAJ47uRtH9AhlCKMmca06ggZKHNrwT8JeugviHHKyWxhUna8CIJKBgSmcf OGhTZzzB2RcJr4l2/yWOAnQpAPkYXy4E/FnHyBoqMmkSnwRKXuIlj3/oFbh8IQguo06uHg T/p6nNeRdwgbQTxUeSGygk2pwv4hTvc= Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20230919135549euoutp01fa6219da8f4564e400b1675ecfc7c0d1~GUVhp0ZfU0199901999euoutp01y for ; Tue, 19 Sep 2023 13:55:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20230919135549euoutp01fa6219da8f4564e400b1675ecfc7c0d1~GUVhp0ZfU0199901999euoutp01y DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1695131749; bh=LMHYH9ZTyrJA3zeIZ8Cw61+9DcuHoaxdnpNBuheefF0=; h=From:To:CC:Subject:Date:In-Reply-To:References:From; b=S/I8tzNocRjVASDHLDVbZG1o0m5ySXDg7TpgNah3igHxxkIwUNZaIoedmh5F0HTBW dQo39hU3zNUXeSOhpV4FI2QiTwztjIioq1rd7Fsu8ItAWEjIVj4OLU9qcBike/4XPs KUXaM379aAsK8wBVtRcwGb7tZ3MbF+HOcWNmVaPI= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20230919135549eucas1p214bb8ae09e148c563a02f19655c58a3a~GUVhZ4Z1R1835818358eucas1p2Q; Tue, 19 Sep 2023 13:55:49 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id C6.D1.42423.568A9056; Tue, 19 Sep 2023 14:55:49 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20230919135549eucas1p1f67e7879a14a87724a9462fb8dd635bf~GUVg-ov7A0405704057eucas1p1k; Tue, 19 Sep 2023 13:55:49 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20230919135549eusmtrp2a092f04f72f32deca907d314cdbdbe2a~GUVg_3kxB2320823208eusmtrp2r; Tue, 19 Sep 2023 13:55:49 +0000 (GMT) X-AuditID: cbfec7f2-a3bff7000002a5b7-68-6509a8655322 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 00.55.14344.568A9056; Tue, 19 Sep 2023 14:55:49 +0100 (BST) Received: from CAMSVWEXC02.scsc.local (unknown [106.1.227.72]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20230919135548eusmtip10e8f5eaa57c7ececc0fd70ba9f61c00f~GUVgvl2li1382813828eusmtip1a; Tue, 19 Sep 2023 13:55:48 +0000 (GMT) Received: from CAMSVWEXC02.scsc.local (2002:6a01:e348::6a01:e348) by CAMSVWEXC02.scsc.local (2002:6a01:e348::6a01:e348) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 19 Sep 2023 14:55:48 +0100 Received: from CAMSVWEXC02.scsc.local ([::1]) by CAMSVWEXC02.scsc.local ([fe80::3c08:6c51:fa0a:6384%13]) with mapi id 15.00.1497.012; Tue, 19 Sep 2023 14:55:48 +0100 From: Daniel Gomez To: "minchan@kernel.org" , "senozhatsky@chromium.org" , "axboe@kernel.dk" , "djwong@kernel.org" , "willy@infradead.org" , "hughd@google.com" , "akpm@linux-foundation.org" , "mcgrof@kernel.org" , "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "linux-xfs@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" CC: "gost.dev@samsung.com" , Pankaj Raghav , Daniel Gomez Subject: [PATCH v2 2/6] shmem: return freed pages in shmem_free_swap Thread-Topic: [PATCH v2 2/6] shmem: return freed pages in shmem_free_swap Thread-Index: AQHZ6wD9pblMkq2/yUu1kd4yGg7G6w== Date: Tue, 19 Sep 2023 13:55:47 +0000 Message-ID: <20230919135536.2165715-3-da.gomez@samsung.com> In-Reply-To: <20230919135536.2165715-1-da.gomez@samsung.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [106.110.32.103] MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Sf0yMcRzH973nueeeO07PXakvkjk/NsXphD1NrE3y+JU2P4fFqa/OXCd3 Hfm5hriaYSrc0+knSYXdlTqnQkwlJ2lomSy7s2Q0ISoV3XNZ/70+e38+n/f7s31ITFrHn0ju 1iQgrUaplhEivPxJ7/M5qFCIAiseTKVNt0sIuvjdOYJudoyjnd1ncbqqNYCurKrH6WabiaDb Sob4tO2PVUC3nHcCuuBnl4C+Z84j6P7fJiJUzGQmNeFMjkXPlBb6M812PWMpSiEYS/cFAVN3 uR9nvlv8IsktopAYpN69H2nnLtkhUhWYF8Z3eSQabj3Bk8DjsalASEJqPmz4XANSgYiUUoUA /mIbsWFBSv0AsONUECd8B/DNp1fYyESuPYPgmq4D2Nc05X9Tzi0TxhXPALx420xwxQ0A29p7 XOMENQtW11sEw4IXlcmHj/INYFjAqGOw5COLD7MnFQYNvXaXhxe1AjqbTgOO5fD+O6uLcWoG NL/Kdy0VU4vgi4osFwupENhy5bhrFlCT4YcbfQJuvw9sdWTzuBskMC+z0n2PNxy0tRMcz4b2 Nw7AcSC8c60a51gG/xhy3TnlsCUjneA4ABbkfnZnkMB6o8Pd3yeEaUOLOA6DyaZzbi9P2Flb JuDYFw7dzeadBwHsqHjsKAt2lAU7yiIH4EXAB+l1cbFIp9CgA3KdMk6n18TKo/fGWcC/Z2sY rO22giud3+Q1gEeCGgBJTOYlNioIJBXHKA8eQtq927V6NdLVgEkkLvMRByyuj5ZSscoEtAeh eKQdUXmkcGIST3FyRfnhhKXq0Bco0cROUonqqjaaaxudL7MsANsqKmXa0aYWMt1DctU//URM RGuw3VtT/nZwjON1ePLKpOL37MaZ6FL7/jtyrDiwR1pabT+zaaU08eCS7Ghzx7zZ24wV6ulR Z/ubJEUDR6+drLZf/src25y2YA0vOD+mrOvtEQ+VIKuk098wX/Ywmep6dqQh96Zx+a70Xv74 uFr1Molf25zHptZtqoEwPZjWU5nhVKz2nXYodd+6cJvYlHIiLG1eg7zNe4F1w3pE+wZvduwM Ck+tEh84mqU97eVbNOTJfmiMf3om0roran0EP++CIWTVAOiIWjfLO+iLca2tcUJZmQzXqZQK f0yrU/4FbUoWZ9sDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGKsWRmVeSWpSXmKPExsVy+t/xu7qpKzhTDVbsZLOYs34Nm8Xqu/1s Fpef8Fk8/dTHYrH3lrbFnr0nWSwu75rDZnFvzX9Wi11/drBb3JjwlNFi2df37Ba7Ny5is/j9 Yw6bA6/H7IaLLB4LNpV6bF6h5XH5bKnHplWdbB6bPk1i9zgx4zeLx+dNcgEcUXo2RfmlJakK GfnFJbZK0YYWRnqGlhZ6RiaWeobG5rFWRqZK+nY2Kak5mWWpRfp2CXoZyzaaFbznr+hYd4yl gfEITxcjJ4eEgInEwrNT2boYuTiEBJYySrQsOssOkZCR2PjlKiuELSzx51oXVNFHRomrs6ZD OWcYJf6e7YRyVjJKHHq0mBGkhU1AU2LfyU3sIAkRgdmsEocXd4AlmAXqJNY8m8UCYgsLuEh0 /DzLBmKLCHhKPL3Yzghh60nsv7sDzGYRUJXYeHUxM4jNK2AtcWH7PDBbCMh+tXA12H2cAjYS N+Y2gc1hFJCVeLTyFzvELnGJW0/mM0H8ICCxZM95ZghbVOLl439Qv+lInL3+hBHCNpDYunQf C4StJPGnYyHUzXoSN6ZOYYOwtSWWLXwNdY+gxMmZT1gmMErPQrJuFpKWWUhaZiFpWcDIsopR JLW0ODc9t9hIrzgxt7g0L10vOT93EyMwQW079nPLDsaVrz7qHWJk4mA8xCjBwawkwjvTkC1V iDclsbIqtSg/vqg0J7X4EKMpMIwmMkuJJucDU2ReSbyhmYGpoYmZpYGppZmxkjivZ0FHopBA emJJanZqakFqEUwfEwenVANTff6bezpsIlK1Bit5+ZkjHVpFf25Qnso4wWcXn+DcHfeeBWyf KXo1/M/Vq47HbfZqtVqGiVl9994+6VTqvj/hJh+Pzdh2zuaQrKlArATX0ld750upf3kTkpB2 WPX++bgJz8wK/vYVJ9WLak8/tsHjieDTHatTV2vnGP5fau71YHZK0OkVWR1Xr1+XsI++adX0 lXdHQPWBxR+/GK0OUpfRaz9r77hZ4VpGU1RgrdmjL6EcS9MPHH4mfuj9o5hmhZtPA7fu9W/w /vOtVff2/b0X3rh94TL9YGtbuXjfvX8NG+SNa/6F6v9/2dwiv8A5fXbVnpcHvv+fXcFeVH+o QHBRflZMl3bQ7HVaBfr+KyxMlFiKMxINtZiLihMBgbk09dkDAAA= X-CMS-MailID: 20230919135549eucas1p1f67e7879a14a87724a9462fb8dd635bf X-Msg-Generator: CA X-RootMTR: 20230919135549eucas1p1f67e7879a14a87724a9462fb8dd635bf X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20230919135549eucas1p1f67e7879a14a87724a9462fb8dd635bf References: <20230919135536.2165715-1-da.gomez@samsung.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 2ADA840006 X-Stat-Signature: ffwtng134ok3fik5ydoyyd4f8qkxfjpp X-HE-Tag: 1695131750-786752 X-HE-Meta: U2FsdGVkX19IqL7R29u3KckimH7v4hbTPDH7QFB2U89n1zVR9i7Kf/OdHPMMlsWSNGLmvWq4TKrY2kHZsIXxotU8Jz9791cat4wsk6smp4cN3hmhIKf7xoH6z2EXoovLeMvhDiSmL9Gu3fkJauIq3eakNXb9TBo8CyprPEvFYXK9avvcSEZ9LVXfUHo/A9+mPFs/BYHAoEvnIC8uLS2h3BayR/auseJx9El2t6BiZMfeZyuL5wtv+RAGMMV/WB16lcqC+osm+6OdnEkhgqQVrZoGXidIIVljuICNeS0+v93gmx6Er3BZkoRWAreiykwOAQcNpo6nnyQvyKPUxA644MyujH82hyUlucxVqcUMOsA+tiTWg1J9phQrq7YEzAMxMrz4Sj2VNa8LLtE/deabF9VVzQF+4VktQPzCkBOMurEq4QrNYGXzX+QrEjuAb+yLE3cF0KZAPcxWwykQ5cDBqiIULqRWMA1u41tzjiw2JvnZmdpZLJrBoOACJAVRLhj12kTQgZuAMct5IqcVLiGXkA/5hbpjRs9pH6UG8wPS+9I2wzbk0+XWFs3duwZv/gxcv48/FKQ9WS9SPvMDwZ2MdIrZ4EaOyk5QlTwNxlSLaN/O4F0cOoK3trv/A+3ckzNH3LNNKChtWGGDDWD0BilkZ9gUqCu4y3pupXLZGYZF23POLhDeKnWW93C/Cjn9uzKHJLqkta7BgRCAA9BdZiXJSrj/mlVbSwksPg8OQsYDqwd2CC8QxFcG5284pOGOH6jScZgHdqOnYZzw1QogaSjouYg0lMxEAVEhvB+Yyzm2tH96kcO2leGZZekArbuhpr5+AphIw8JuAs724KplS4tKym3FuamJB2oBkbYR5EZtgLvwOHV1F4drncLiOZeOhjcHk6tQCYgYUFBTSsuldMATt7pAoHazfDwUneCRYpA1ybsLz0hmPF12LBMFAHDfvg5UZLksc4mcbwyHkpS0q0W 6zv5vv4k rcQNbGLWixZrxa3BseMdOXwt/om7Uk7YkFFLR540SrbEh6k6xzmIDYRnI3+23Cc6onFPWbKrrvNhSgFLYp9nWYLe4fB+DKIHuBnvDYXfKo+AR3KlzkAH4qWLfxx+D9pYNLWRNHvl+NA1oXpGoaiS1rsCCJgDYsCngoPFNU48aInjTJFNrVViXWOdKyjN10HsSbyRav50TFd7Fw2i4/BKzqkHQtQ== 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: Both shmem_free_swap callers require to get the number of pages in the folio after calling shmem_free_swap. Make shmem_free_swap return the expected value directly and return 0 number of pages being freed to avoid error handling in the external accounting. Suggested-by: Matthew Wilcox Signed-off-by: Daniel Gomez --- mm/shmem.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index de0d0fa0349e..5c9e80207cbf 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -846,16 +846,18 @@ static void shmem_delete_from_page_cache(struct folio *folio, void *radswap) /* * Remove swap entry from page cache, free the swap and its page cache. */ -static int shmem_free_swap(struct address_space *mapping, +static long shmem_free_swap(struct address_space *mapping, pgoff_t index, void *radswap) { void *old; old = xa_cmpxchg_irq(&mapping->i_pages, index, radswap, NULL, 0); if (old != radswap) - return -ENOENT; + return 0; + free_swap_and_cache(radix_to_swp_entry(radswap)); - return 0; + + return folio_nr_pages((struct folio *)radswap); } /* @@ -1008,7 +1010,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, if (xa_is_value(folio)) { if (unfalloc) continue; - nr_swaps_freed += !shmem_free_swap(mapping, + nr_swaps_freed += shmem_free_swap(mapping, indices[i], folio); continue; } @@ -1077,12 +1079,12 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend, if (xa_is_value(folio)) { if (unfalloc) continue; - if (shmem_free_swap(mapping, indices[i], folio)) { + nr_swaps_freed += shmem_free_swap(mapping, indices[i], folio); + if (!nr_swaps_freed) { /* Swap was replaced by page: retry */ index = indices[i]; break; } - nr_swaps_freed++; continue; }