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 B3E8DC197A0 for ; Mon, 20 Nov 2023 04:18:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E75776B037B; Sun, 19 Nov 2023 23:18:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E255B6B0385; Sun, 19 Nov 2023 23:18:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CED016B038E; Sun, 19 Nov 2023 23:18:15 -0500 (EST) 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 BD14D6B037B for ; Sun, 19 Nov 2023 23:18:15 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 73FAFB560C for ; Mon, 20 Nov 2023 04:18:15 +0000 (UTC) X-FDA: 81477025350.13.3A24CA3 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf10.hostedemail.com (Postfix) with ESMTP id 68EF0C0006 for ; Mon, 20 Nov 2023 04:18:13 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=osZUrbBo; spf=pass (imf10.hostedemail.com: domain of chrisl@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700453893; a=rsa-sha256; cv=none; b=1OtaA2qXjR5yprnHbhcDvIZM7zWrvQOa4vDifgUv0w7CtwCPGk6D8Fy9Tej91FhjKVLiAp ejkGfKD6S/OH8SnZ8PFaeIWMRrgkXJkKLxj1ry7UXCDheiA/ZcbGVZzZhDIJIaJ1p73/yJ f/dlYWBKNmEOUNFPMO+qofWoqEA5P3w= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=osZUrbBo; spf=pass (imf10.hostedemail.com: domain of chrisl@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700453893; 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=VZBuDHZLGkYj26cQROvbDDI7K8Acew+cClcEl9wrau4=; b=OlBBLERS0Yia1WsVQTvDQcq8ZUEalyl6w3kd47L8R79dHxtXQOW+527BeiZEIfXFNmQfQD fzsFAKOnXUVZJLCCTPrybH1Unzqt1jFyxAOgG8h0V7jNfmEPoX0tMR+4LLn0KlUxgoE/KC lHxTDj+CKkkmw+IIuKXvL+MRKyfYIDI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id A9227B80E4C for ; Mon, 20 Nov 2023 04:18:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C7E4C433C7 for ; Mon, 20 Nov 2023 04:18:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700453891; bh=BluD7GIVPO8PrPVuaW0518p8IU0xm5lBhxJYVGvOByo=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=osZUrbBoau/5wiylWuf727gI2yFiwS42NUycYdcMhSsIPZ6zg8UN0qIUwemah4AjV 26IplfITNMI4E3CbRY6Pmd2EP75Aiids9S6m+hmJ1wadnTw7EL3Rq1fOY80lcw+RSJ HU8IhCH9TnHssqjPaut1ZbRrsn2mVa33F49gTbLor+J9T6qRcr0j1onTEBgBNOWGl7 BqsVWiMa81+EFH7w+u9p90safr3xQgBMRRk3Qo62wq4dlB1fdUP84xMKwaYD1A0DDd V4FXDgwDZh06Q4pC+W2ikhufkdaLlZIki6A9CWw9sMPNnbQWMj//ZEHRu8m5MRbywl u2HaHaXK5CGBQ== Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-5be24d41bb8so2696066a12.0 for ; Sun, 19 Nov 2023 20:18:11 -0800 (PST) X-Gm-Message-State: AOJu0YxB7eh0UykQMYsMdZcqZcPBtr3t11HzfzSsTaj5jngeA+VP17nP vd53vCwEHQTTK7J+BsKl6x+OF83p1vNVKRQv+PjKCg== X-Google-Smtp-Source: AGHT+IEJodpCm5QEZgAh344L09AH+Jfnh6wGRkUZQu4v/ot9+4ois/EpwLm/GZKydBJyx86vspgRmVNepQfLaKfeRdE= X-Received: by 2002:a17:90b:3e85:b0:283:2652:3d20 with SMTP id rj5-20020a17090b3e8500b0028326523d20mr9197638pjb.9.1700453890466; Sun, 19 Nov 2023 20:18:10 -0800 (PST) MIME-Version: 1.0 References: <20231119194740.94101-1-ryncsn@gmail.com> <20231119194740.94101-5-ryncsn@gmail.com> In-Reply-To: <20231119194740.94101-5-ryncsn@gmail.com> From: Chris Li Date: Sun, 19 Nov 2023 20:17:59 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 04/24] mm/swap: avoid setting page lock bit and doing extra unlock check To: Kairui Song Cc: linux-mm@kvack.org, Andrew Morton , "Huang, Ying" , David Hildenbrand , Hugh Dickins , Johannes Weiner , Matthew Wilcox , Michal Hocko , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 68EF0C0006 X-Stat-Signature: x8c89h7py4a8ihsuw8saxuh6y6i3jejw X-Rspam-User: X-HE-Tag: 1700453893-563216 X-HE-Meta: U2FsdGVkX18wi1+qRXx2SraX4Z9lCZry4mP71NE5J+aZiVdOfyC7I+v25v4HjV4N7NtM9C72SpgtVXSVuVcBUXud1oHxNYr8PqS+jP438CmCm1ytmaluxQXa+jlKLeb7kKPnMSOMOmAAxeJ9CMg36Aohq59IMJ/NyBph21HgpJxRQ0EZaMZo0I7QxEjA6VeXR77ruUkL2XGDm5E6HFOsXN7/QuudaOsJBkmxZIUAbnjG6KDDGesTL76PtqbV6IN/ksWCY7TLrRlqD2LAW0C7LP6vmMp0/RHU5Z2jir1HyTUIs0v/I0qDIyUebGuuizba1ca10txWtbo5hIi/yVfJd38ADwhS6SbnJT4Bo+ypnm2PQNZJwod155EIf+i4kOSZcEM0DYJtfHtj6tOgCOJA7naloTJxO1ZlAYwCX63B7VFnmZWF23IGFyMqqHpt5y4E23DwsuXdiLA8albwiUWKCKmVp9qlr5ARELeBZssfmleMQS3okizpIUrEdMA3TQ7m0f1k+9gfYIPalNht5c2SiTtLFXjThlN+EGeYUFI1oE09HCaS1j7v8YrEcB92e0yUz/KWTa85YUAjlAhR0Z7k6XrBBp4oiUQTebZbQ1UbgDnlBuKQpmzKNAAXUQhBULqmrH5Cizy7yuXyBRRCfuY78YPdh44QW41Yz/BfP4gjJaa3DapYrDz1kaZ3jKdIF9WFWf/T0Wj/dCj35c6eFuV7lbrcYLkxhG1Eh4NCmdmicgXQISiZYv8lcKTjh/9E6T6/nNGivDa/xknH+cFgDNiCpkQJr4oOc/6WR3W8BqXMFYPM+cwJT/QDQfbZvttcYwMS12qpMhOMZOzwKYPIu0NZX6pHggImYuTh0KqhVQFpRqfXTd2MfZeKnefkI3ot8dXKYQXSrCf6VJLJqqrx7cB0oS8Def5M6AYUrfpUmfnAeoHhpEDDQW+DhA8p0sPdoCv46796WqKN9H+WZEUSX3Q DQbC+WN2 lQn5QEa45hm9xhi7EmrjZ0DUAPpX0hFPAeoi7Gx5NDOV4WYSJNsHikHktFUVQydos+/saUQiE8xm6KI+KeiUKTqa9Wql21dCxI7q7khGm90T40k6+I+fu35Sz61g7PdUnXXqkVnZMwGKo390/HjsOtOJOq2HMi+QnoIqQNuGAjFANolp9VMVtDxyoqsBnIOQkgUuTfZAHUIFxtdB8VOaOoxqzgR/QdF7lA4hmbcSRbZj/9H0b0M86vhHlgfqSHlMJVzggnYrmqSDHt7tAxNMlmBYCv5wFzgd0FIxL28BH9EkDWEE= 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 Sun, Nov 19, 2023 at 11:48=E2=80=AFAM Kairui Song wro= te: > > From: Kairui Song > > When swapping in a page, mem_cgroup_swapin_charge_folio is called for new > allocated folio, nothing else is referencing the folio so no need to set > the lock bit. This avoided doing unlock check on error path. > > Signed-off-by: Kairui Song > --- > mm/swap_state.c | 20 +++++++++----------- > 1 file changed, 9 insertions(+), 11 deletions(-) > > diff --git a/mm/swap_state.c b/mm/swap_state.c > index ac4fa404eaa7..45dd8b7c195d 100644 > --- a/mm/swap_state.c > +++ b/mm/swap_state.c > @@ -458,6 +458,8 @@ struct page *__read_swap_cache_async(swp_entry_t entr= y, gfp_t gfp_mask, You move the mem_cgroup_swapin_charge_folio() inside the for loop: for (;;) { int err; /* * First check the swap cache. Since this is normally * called after swap_cache_get_folio() failed, re-calling * that would confuse statistics. */ folio =3D filemap_get_folio(swap_address_space(entry), swp_offset(entry)); > mpol, ilx, numa_node_id()= ); > if (!folio) > goto fail_put_swap; > + if (mem_cgroup_swapin_charge_folio(folio, NULL, gfp_mask,= entry)) > + goto fail_put_folio; Wouldn't it cause repeat charging of the folio when it is racing against others in the for loop? > > /* > * Swap entry may have been freed since our caller observ= ed it. > @@ -483,13 +485,9 @@ struct page *__read_swap_cache_async(swp_entry_t ent= ry, gfp_t gfp_mask, > /* > * The swap entry is ours to swap in. Prepare the new page. > */ > - > __folio_set_locked(folio); > __folio_set_swapbacked(folio); > > - if (mem_cgroup_swapin_charge_folio(folio, NULL, gfp_mask, entry)) > - goto fail_unlock; > - The original code makes the charge outside of the for loop. Only the winner can charge once. Chris