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 97169C54FB9 for ; Tue, 21 Nov 2023 05:35:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 241236B03D3; Tue, 21 Nov 2023 00:35:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F0BA6B03D4; Tue, 21 Nov 2023 00:35:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0E1816B03D5; Tue, 21 Nov 2023 00:35:14 -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 F2CA16B03D3 for ; Tue, 21 Nov 2023 00:35:13 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D04FE40355 for ; Tue, 21 Nov 2023 05:35:13 +0000 (UTC) X-FDA: 81480848106.02.2F0881A Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf20.hostedemail.com (Postfix) with ESMTP id 51DD11C000C for ; Tue, 21 Nov 2023 05:35:10 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=mGBfnrIL; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf20.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 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=1700544912; 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=hDfAvrMWlu7arSkmUdwluBBpNVodpuoHpqiJFlyIPI4=; b=f/zGD8V6kvug9hkGVzYrL7oT96AjJzzpx6Tsa0SGynHgxpImfFp2UraE+26RWERKyt4RSB 9N9UylYtln5RsGET3FswIszNvpoV4+NJHblCbs+5YolRrgPVOtSWXRaqOZCLGijsnCS3sh CMzmuVIHf83cBG36C+1EV8pTPpA67i8= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=mGBfnrIL; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf20.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700544912; a=rsa-sha256; cv=none; b=Kx+k+lmqEE5jD/IKjWK9VQB1BGp6mXoskpkPBMfeyaf5dkM4aeg2l7ZdTOU8WoUsOhAosu JQCtLqIIWRsmtsBY0DbGrazIkaxSQ/ArQFsWRomE87slkPq+6JrRU8RDhQxaGp3/5270Wl t+S3OGOJRgfoqz84IRbOpFRB4iPH0Rs= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 259B5CE1A08 for ; Tue, 21 Nov 2023 05:35:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 661BDC433C9 for ; Tue, 21 Nov 2023 05:35:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700544907; bh=Nop3Gevi48alowZBkJN+6yoWTajd7eKpQWuqRWMSkAE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=mGBfnrILdesKDAmZ2ERr9Ih3O7LOLxuq/SBTM0asbWVb/6ZsRaLG2JMiP1OH4FGn8 /uAfXRnEipfHP2a78SMd45hNNWkbqWxcukvfvpFJvk41boeg6CIHicc39GjrTEm5FU SS4bjt9i02DtS/TnGG/CzO8k6YpSpszTOLxtRqLOapfMTI9IEP/x6GKVszIdZfyHTh BJ2LLbzDe1Acsd6cpkxgAQwSAr9Pto9dMN6Ky/I+6E08eFdcWDtumB6vc4gkKRTJ9K 4iD4AapGRI7nNxHjAlLmOIj175z9icj87+44OFl193g/9oS+KHrGBsefYr5kUVjuG+ w6KpxxQTMOODw== Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-6c39ad730aaso4191538b3a.0 for ; Mon, 20 Nov 2023 21:35:07 -0800 (PST) X-Gm-Message-State: AOJu0YyuMFZSHdyi1uQH2j9e52D/rbFyEthDQt1gChruiP4jBe6nB2Bw uDsxLEZSrv5k1/zF5As5mnfsAxqnYMhJuttmj6trtg== X-Google-Smtp-Source: AGHT+IE2T2dovn9JUJ3ms4TzULFEUnHYChzOP1n0L3VVBqeakkJs/5DeMQGnKuXLLqUKs1HgBmdKiAnIwauxVguIkTA= X-Received: by 2002:a05:6a20:861d:b0:187:152d:c1e2 with SMTP id l29-20020a056a20861d00b00187152dc1e2mr5468910pze.46.1700544906866; Mon, 20 Nov 2023 21:35:06 -0800 (PST) MIME-Version: 1.0 References: <20231119194740.94101-1-ryncsn@gmail.com> <20231119194740.94101-4-ryncsn@gmail.com> In-Reply-To: <20231119194740.94101-4-ryncsn@gmail.com> From: Chris Li Date: Mon, 20 Nov 2023 21:34:55 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 03/24] mm/swap: move no readahead swapin code to a stand alone helper 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: rspam09 X-Rspamd-Queue-Id: 51DD11C000C X-Stat-Signature: kyj71aser45s7guo5j891hx4osfgajju X-Rspam-User: X-HE-Tag: 1700544910-519443 X-HE-Meta: U2FsdGVkX1+77V1xL3++XoxpryZDTmjOg6/WoXQs8pm6Fv5n24/6OiTvTJBqwF/MPfWXEgcXy678/5LzBJb3x+ncmBdQyectSRnEqopFeLqxZGIdIoGOx3eX7D/NoUV35dSdBIVGV60F8CbzPny5sPJPB62cJYwZaJ/IpXCNZ25m48euzwKaRmMvyX6JO0Dw0QU4zEU0uQtijJIj27tZ+8L2L5quzqjWErV2ORfRltKxeQSAA2JLfUU/fWJ9uAq/QzJB8gWp5/Pa5RpyRHBZEj4YovuTMDCcBpJbjWdbIP0y8nUHHvl+4jZ7LLl90uuyU0ycyN8WVS3/Q5HEZ3OsYvaieTeq19uCrcIQiskJ2w+orFYhy0/LC/jhTj/bh/pGeVv5JUJaXap7Cu7cw+9eEVc3xCakTe062mHX6vTILhSOF0GWbr5DlLqF+uPM331U8OTox+9EUtWdJsyOX+VjUY+59VynMNcqMF/7V/YbGFcvvgL8ZXciwiEkZ4r7lhFPxISnLrk03BS7nvxYjH3bW6Sa1GG7Ucus6bHnZQHXEp+o+JBsLuHNnT2inJza+jCTU/K5ckZUyoGecjOOE63LIs5r08hcPw0rDAI/Raw8hCvxo28vUM0PqE6IM4kGNZnWDKDIpFg4KPpz15vErmVsgQPwkSAzVxD+Xp4x4aVXSypxdcHBxeJSH9mauOEdOckwDix5JlBPVTLRlyeSeYJy0opcGym3bExbHm9gJ01WvTQPfrKl+lCVvOArTvRFVUojcF9KNuxa5r9xNT49Akj6ffC2Uc64lQkaeLFE8uUKUhYEhbBV7FmMO5q2/GPszIA7jx6G9wm2KAqjZQNpkVFx67mZNJTKw4QYTON+fBLjPEii8oE1IrujGHTADScPK1+Q/p6eCrPa2+tdfab47kUQwtO1kKuJ30OH1kKw0Wu3QueUpfGBZLL4tfj2F3e8XxzCztqv+AHFLJr6A3ofQ95 3Sqx6whj g0Ltc8CRMcUCzTbOZG4xrr2ZwjG076U1W/aZUxXurm6kHrK8j6jzxUybRlt5XIN0/MDXRRalE3s4ZuPB70vPr7Zu43gVoJjF+d3XleY98ucgCK6jpj+PWiNsUIxQwTbIrsWoDj14GIC+zU58b8bTyBH9eDmreCv1JjF+c7n2/ONMtVU6YXSAFGwBboMMj4sy7DGGWgJMuxLPpDKZ5iwIBq4/MJ9poIBoRJYX27LWwwgrifEHJlmybpguKJ2f2j7Q9d9/LA3PesODVb78eJJsjq2/9ABZxrhnDVY5mtec+YMKyR3U= 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 > > No feature change, simply move the routine to a standalone function to > be used later. The error path handling is copied from the "out_page" > label, to make the code change minimized for easier reviewing. > > Signed-off-by: Kairui Song > --- > mm/memory.c | 33 +++++---------------------------- > mm/swap.h | 2 ++ > mm/swap_state.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 55 insertions(+), 28 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 70ffa867b1be..fba4a5229163 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3794,7 +3794,6 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > swp_entry_t entry; > pte_t pte; > vm_fault_t ret =3D 0; > - void *shadow =3D NULL; > > if (!pte_unmap_same(vmf)) > goto out; > @@ -3858,33 +3857,11 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > if (!folio) { > if (data_race(si->flags & SWP_SYNCHRONOUS_IO) && > __swap_count(entry) =3D=3D 1) { > - /* skip swapcache */ > - folio =3D vma_alloc_folio(GFP_HIGHUSER_MOVABLE, 0= , > - vma, vmf->address, false)= ; > - if (folio) { > - __folio_set_locked(folio); > - __folio_set_swapbacked(folio); > - > - if (mem_cgroup_swapin_charge_folio(folio, > - vma->vm_mm, GFP_K= ERNEL, > - entry)) { > - ret =3D VM_FAULT_OOM; > - goto out_page; > - } > - mem_cgroup_swapin_uncharge_swap(entry); > - > - shadow =3D get_shadow_from_swap_cache(ent= ry); > - if (shadow) > - workingset_refault(folio, shadow)= ; > - > - folio_add_lru(folio); > - page =3D &folio->page; > - > - /* To provide entry to swap_readpage() */ > - folio->swap =3D entry; > - swap_readpage(page, true, NULL); > - folio->private =3D NULL; > - } > + /* skip swapcache and readahead */ > + page =3D swapin_no_readahead(entry, GFP_HIGHUSER_= MOVABLE, > + vmf); A minor point, swapin_no_readahead() is expressed in negative words. Better use positive words to express what the function does rather than what the function does not do. I am terrible at naming functions myself. I can think of something along the lines of: swapin_direct (no cache). swapin_minimal? swapin_entry_only? Please suggest better names for basic, bare minimum. Chris