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 38983C61D85 for ; Tue, 21 Nov 2023 17:25:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEC496B04D1; Tue, 21 Nov 2023 12:25:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B752D6B04D2; Tue, 21 Nov 2023 12:25:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F10C6B04D3; Tue, 21 Nov 2023 12:25:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 85AB66B04D1 for ; Tue, 21 Nov 2023 12:25:37 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 68DB480341 for ; Tue, 21 Nov 2023 17:25:37 +0000 (UTC) X-FDA: 81482638314.13.3DADDAF Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf04.hostedemail.com (Postfix) with ESMTP id E25F64000C for ; Tue, 21 Nov 2023 17:25:33 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=d2sJTgAJ; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 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=1700587534; 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=iYkqITSe8pcguueENo/VlS30fvvhha8zspryFRPUDow=; b=sAHbmFXu+F8GC68ySHA97qBwxrhorHq1LcJXTBOBL4YW7LhQNxEQGMSZNWAr623wN2hHnf NyfIw9ZBLy89T4XijocTTvH1bK4B8/N9U9l+/ZEdXc9YIzbxQjA4JsApBNDaUaWWsG8Z9m k1dS05hdcjSRwZxgg9JM2/Q9g11vWGM= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=d2sJTgAJ; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of chrisl@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700587534; a=rsa-sha256; cv=none; b=0E/W044lnb8ll+7nOp678GDbanBp9f3Sl0aqZyLs/5DmHIrDhcquf9PbHNDm4ltpTJ0qzQ HJ+lC16CW2ldfJGsVu4orIHJiCJS00EA5ItTOQsK8dGt+hfc2CmRCniz7sbraiPNQuOSyu esGPjc3V6CZ3ccikcj3AK/bA+qKsjyw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 00C6761A85 for ; Tue, 21 Nov 2023 17:25:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8C98C433CD for ; Tue, 21 Nov 2023 17:25:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700587531; bh=qt6Wz1wjQVS9tVKoXRbtoCApE+YOUmxZa+rP2nFghP8=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=d2sJTgAJM3C2pe6wm6FgWEP3Mp32DhS77vJvJbwKIdkQnQVF8WvAZpYqqJkIWc2Y9 t3/BldE9o5BlD94jCDrDS0ghnjSZFF/vbrgWzWoZTFvKW4ihNkMUNKaoOMjGHsMFRG ukpnSeukYqQ5Gb9vf6WjMOzzjVnv649z4vAOrQ81jBByJQV0miYqoPwsj9apVnpRQ5 kIWgN1bXN9Pc+N9HDPu1R+BbhUhgGseLaPHg7u1qhpZQ8iLHcdGph011VO8t48bdip Wg1LutdYKet/VOA1YBxVI26liHK29nk/fnNeocz3eV5kl1JbYPWOlJPR3qoW+YLSGM x+dgnB7unhCAg== Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-5bd306f86a8so3919006a12.0 for ; Tue, 21 Nov 2023 09:25:31 -0800 (PST) X-Gm-Message-State: AOJu0YwTLhHFF2sEvSgU8WPfI3U8IwfxDt1WeXVIkVQntg7QcFHM8QVU qw+csqrNzaFQnQ7kbgq8xN11MLGlZUfkclMXf8PT9A== X-Google-Smtp-Source: AGHT+IGGVfRpUhMS2OniXh63UwnOagMginQmE+GvDZVCOiVoIC5mvb8KoxnZDqOxlTD9o8WLBm+c/w2aCzQhdwG3k18= X-Received: by 2002:a17:90b:4aca:b0:27d:b9d:bd6f with SMTP id mh10-20020a17090b4aca00b0027d0b9dbd6fmr10246427pjb.45.1700587531325; Tue, 21 Nov 2023 09:25:31 -0800 (PST) MIME-Version: 1.0 References: <20231119194740.94101-1-ryncsn@gmail.com> <20231119194740.94101-17-ryncsn@gmail.com> In-Reply-To: <20231119194740.94101-17-ryncsn@gmail.com> From: Chris Li Date: Tue, 21 Nov 2023 09:25:20 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 16/24] mm/swap: reduce scope of get_swap_device in swapin path 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-Queue-Id: E25F64000C X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: bo9mzaqpjmka3zubzc6yc59e1cejeqzw X-HE-Tag: 1700587533-431172 X-HE-Meta: U2FsdGVkX1/pbkrvMXDUVnefVcAUhMVMl9ImdVJvSUBKX2Z40jiOKhFaKJ0S8D5sx8yXZd5v2h+XvjbIyrFVIDt6dAelyvK/Pyy6Vxp+uED0YfQH9vBY/+Sz1AIZhntIt2k/rTOMixeSq9HL41dxUF6lof0BxDSdJFhI8IqLWJwiTrrPnJ6+qbXmMN4B68UpPH5lv9c4tfVIiIO3D7BwTjDSuH7F4hl8cyfa904UiRTfrcd2WaFcaIEBIW0BZlELyn/H+cHneIsVQh4lbvRSJ7IQ7QdNM8KTXQzwWxBclhVydWY1YExUgsuERWF35kWdaHUnT/Bvt1kb8/Efzep+GiZZZruyq2xKEOKcpJ95iSxaK1YwV28GXHwSP9ieyvjc17IgSkk4xwIWhHrrBLqBeT/7eBvN/ZnKdgTuCf9T8ZYhFrT7jVHkY9JyKoZRxlBbo0+MA87x8LdGeuUvyIGpwUWHknS6uXWZJ0bwOT0pBLssh7674cirtU8/Zk1IviMR8HrAS/anRs2pqAfwdGjcfL3AxuvSbNNDqv3I9URwBIrZCfBrSR4akp3/vuVsVNHIVy2kB3IPj0ip3bCk52Tg518Uya6LyRc8PsR8e6MsEmob2K77QzUdpc2cj/aJAX4gobtBMaAf4EtdFx0AeTSuBRnVHts+EzdFZ4EQGoSUfYrIkOwy3rde7VBorrRmd3V/5HgCqrZf4z3ZPJ+aE2472ID5WyTvhVBjr5LH4BbxA2A8p9dd+lNggcG7LfKt43MOHb4FZqxw23WIRtlOx+5ZAQYN88RrVl+nbuuK52QGfiJkS7Ki92+F+tX/xUg6RapKA7nw6GOd2PqIzhVxZE2vMGJfo5IqlOI7JxkCHV+/91md6aRiYCceRrZkw0I2HEmiZ+lIPWR6DeCWoZ2c/GdVc1gXjimQ+MF6sb/TaV5ixCrAFcY+fntKCQO8OhRSAwg9HZun2T3deLSyUd5QhiI VjAw/Kro wjOocZjAm/8ebrtnxP6Mwpn70EP8wmuG68RitzSE465k24et2G4F14xwbIontsyC2EJzHWd8rEuyBEHBDB32B0jXgMDSu+RXp3Y2At+T2/tYmmZBJNmWxuvjM5tsYPLVsDz8s1Fy/eFOskq68Up1pZ3CWZJnIdecm4dQbIDCvuXDx/H9o1POb2BGOpxW0yqkDZGGrzLU9vwKSdZZZIOsfi3mecyG6dxCKydLQj7ePAx4NeTrPiDwgiHA49vhJsvZpoh89pIFGQRGSLdjeMQfoqGLMGqb7cWCRSW0PKkvG/8rvWKHxoA/xwYPL5f0eaeZwxDLICyygZ5K+IZijNQ6aKa3JkA== 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 > > Move get_swap_device into swapin_readahead, simplify the code > and prepare for follow up commits. > > For the later part in do_swap_page, using swp_swap_info directly is fine > since in that context, the swap device is pinned by swapcache reference. > > Signed-off-by: Kairui Song > --- > mm/memory.c | 16 ++++------------ > mm/swap_state.c | 8 ++++++-- > mm/swapfile.c | 4 +++- > 3 files changed, 13 insertions(+), 15 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 22af9f3e8c75..e399b37ef395 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3789,7 +3789,6 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > struct folio *swapcache =3D NULL, *folio =3D NULL; > enum swap_cache_result cache_result; > struct page *page; > - struct swap_info_struct *si =3D NULL; > rmap_t rmap_flags =3D RMAP_NONE; > bool exclusive =3D false; > swp_entry_t entry; > @@ -3845,14 +3844,11 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > goto out; > } > > - /* Prevent swapoff from happening to us. */ > - si =3D get_swap_device(entry); > - if (unlikely(!si)) > - goto out; > - > page =3D swapin_readahead(entry, GFP_HIGHUSER_MOVABLE, > vmf, &cache_result); > - if (page) { > + if (PTR_ERR(page) =3D=3D -EBUSY) { > + goto out; > + } else if (page) { As Matthew suggested, using ERR_PTR(-EBUSY). you also don't need the else here. The goto already terminates the flow. if (page =3D=3D ERR_PTR(-EBUSY)) goto out; if (page) { Chris