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 8FA5FC61D9B for ; Wed, 22 Nov 2023 17:33:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 02EE26B05B7; Wed, 22 Nov 2023 12:33:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F20EA6B05B9; Wed, 22 Nov 2023 12:33:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE9946B05BB; Wed, 22 Nov 2023 12:33: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 CEC676B05B7 for ; Wed, 22 Nov 2023 12:33:40 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9A8DF1A1261 for ; Wed, 22 Nov 2023 17:33:40 +0000 (UTC) X-FDA: 81486287400.30.2458574 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by imf27.hostedemail.com (Postfix) with ESMTP id B735C40029 for ; Wed, 22 Nov 2023 17:33:37 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=FfV46D3h; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700674417; 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=UoCjknw8mm8pTdU3G2BJeKy6q863gsbJT26LTMpWUGM=; b=nMR/+vGizA9ja1RM9V8N6E1PdDTmD0kCFsA65dWNAbXpnctLVYJGKm2FQTAXPViIV78Ui0 vk8kRHXBdymSBD9/gNLGg9D8Dzk4FoqBBf9FFLly/JFEWnw8SteVTZtyL+guJH9t+7Yv44 GxlhOaVjV5ipGfmE0KdLktX9PRJF9QE= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=FfV46D3h; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700674417; a=rsa-sha256; cv=none; b=tcOjnE97Sg/Swamo0AC21XCtlrCITrUy4x+HchQ8/+dlpNQ/E1gxZfOLGFHKrdghiW06Cc lKHHgZVwsBVbG5Pp+ts6RnXeMVTJK3rdAzHZRP8BCbKfrYGOVfF45crkDAmpUecpt3/ZA5 HAbNoBDxWRP094Wb3l0k1Z98xpi3R/8= Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2c8880fbb33so559121fa.0 for ; Wed, 22 Nov 2023 09:33:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700674416; x=1701279216; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UoCjknw8mm8pTdU3G2BJeKy6q863gsbJT26LTMpWUGM=; b=FfV46D3hrIuD6jMMexwVhTrxhWV2xYBPkYGY4ijkBnM062LvRUiIX8JlWxi+Bd6CMt rMyxp6RlNgeyNiCprgKGkEKM3XrX1f46gQSi6y5c8H3HcUUeqreMogyGTUriEs67V3+6 VyI/8ulSQb5uvyXnfwPW4yQcrCeblS65LiOJLG0wrSi4xnv2a2YaLbnBG/+sHKA1c69H sEX6lzLyYqNM2QXvUjs2W6C98/Uf5cFX5gAn/yKoFQ6WOE+LnO8GWgqZy2C78lVoncaI TBcJmOTablFNB3PHPtEjlpOiynRcvMqg2qih7PQiVFnYYFuUM9pSTQa+ZLrIG+GkjFu3 LQ9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700674416; x=1701279216; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UoCjknw8mm8pTdU3G2BJeKy6q863gsbJT26LTMpWUGM=; b=JjL5A7liVkD0pK76k2Vp172oTkVbnv8ET7aFEOo3dnP8WtR/4wqLDKlqHBGrFytWAD k99rtBdlnN8MpGEuAiyhPhOsab9mV9HDx/jvF6DbgvuXCJZMFFh+pMdHkZJGVHPwGkS+ vIGw3CmeBRUbJgoR+Yt8yvuzKxsRT+jU5QovCjzTBK0dtm3AeRRBA2r0rzsn13ExhchR 74oYr5ExebcdzoXHJvGesmGgZ8wXPsHJ1fVMv4KTjyhPxXl3Kq99r0BKBB7NaaLBTE8j X9srzW+fhYEAmFJHuom+tIgJ+s9otKyqFugRsdn3HoOErpXCzzGInNp7A8mPo01yP09G ZIVw== X-Gm-Message-State: AOJu0YzQcD01CWaV1kyrmwmeBz4mwQihV7GGS3VJRjeu/ikFkMfszSxL 2Ngf3asvSVDAKBwMiShF7bZbUltK2zbvTPO3gvqZs19kUUUX7Q== X-Google-Smtp-Source: AGHT+IHVJENGYb/oNMrpiGCF5JMK04qM6dApbvtvdLQxgcro63ZrVS1v0coxcVLYp7AbjDqGC4nyiBkP9LGSZInqhFg= X-Received: by 2002:a2e:88da:0:b0:2c5:1915:9824 with SMTP id a26-20020a2e88da000000b002c519159824mr2357825ljk.9.1700674415875; Wed, 22 Nov 2023 09:33:35 -0800 (PST) MIME-Version: 1.0 References: <20231119194740.94101-1-ryncsn@gmail.com> <20231119194740.94101-4-ryncsn@gmail.com> In-Reply-To: From: Kairui Song Date: Thu, 23 Nov 2023 01:33:17 +0800 Message-ID: Subject: Re: [PATCH 03/24] mm/swap: move no readahead swapin code to a stand alone helper To: Chris Li 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: B735C40029 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: knxb7n8ib83gt4x7mcay7z69ny8gcjik X-HE-Tag: 1700674417-927808 X-HE-Meta: U2FsdGVkX1/PvGz6iiNailETZE+bbY7HRdNH4a8zn4676mDlUP4pZO7IH3wTPUYciNO9d8ZsKqK2prb7fEuZxa79tIpnRzpN32SGEcpwgWkNs7JJgCn6l8TgVgqSAz9iZhmPXDwPqxj+ZKUwqJasdl6neJBhIf8RGsgwWZDYfh+P8tNTnuNSSwehWGjWsGmX6/5atZn53R9ZZ1iuAZ7sygrJeOkYM4PTdFaDbBvtv4qMxUmtItBP/zLbwmxPQjFoedx1MuwhOoMC07ko6ezyhHsgd3QsNtAExJx9vDxzdGX5Z1yRgVGj/ld7WBIiH1rVtBZ/dM6lAhDq1LlePIe4kDiJUWTxyLiHvbN3YdJgARGvaPgeZJbyJg0y5up4Bc+qil9Dind4z7omp5lzGdzfhMT8wUG4RhNnvupyGtURGRqs235YArAv6k8LNo7imYnqMsK1Mv3AbqTvHdnqca+lpjQcYbuZ09m904RN+JeVFCMH5yEH2Cn3ec4AKmuAmscGZXg3wkhT6+VewPcWnLMSZCg7DaVY1I0qtsQVkWS1rGqaGs4iK0yyv3iHmNTzM64X0EuP/LKEr3Y+ieJsriDm3sKKSNvO1WSy3GtIuro6ak/S3s9hI+mEDZn49JwL/IIteZS5TZZldicWUxe4TaNryMp8wpGS/9aH+bcBibSYgN1u71vPWcmcBaG3VzgEwiiYMpex1P8npzzoozDar78WBOO3YuIOFauomSgOfEINKa0NfHAn7+oQE039o/zix76mPuX7+st4LiJcOaN85NA3NwqEc69jYwJuOAXAx4IQw8heJ6fclx6K82NEvqM82l1Nd4HzpBHSqC4L+heJ2YlgR2/IYkKS9Y0YVcsyodxSTu5Wcz5s6P+jX50iTctlqs2LTK/VD0ZkgFOL328TE4qnT0lkb9z+2Dx93jeCQsukkg9jP7zp6EDO8ox1p4jG1R/QTLo8BYEyZfUxZLUkGrW Folc4U3S kvnDFCTTX9PjLtT+S7KaiB+tnA3eCSa52UnFOOE0JSAhSznKLhdNpBz9kTI4paZhtKRXuNJTr8BABv92C+7Npy2mr9HgxhqFWWLu2jNpJ5G0Gd3H2bDxTRoZ7cESfpnaXeJTk4WSB4O1G2Iii+4EN+BHrOMXAKH64bpKj5/IaCk0lCkyaPEdoUag67LKUInBiWhk0he6sH8CK7uoK5Fc+3bt97uF0QdPbFxCw9qSSRLufTS2dnde8QwQlYYjo30KW9VCKlr5r3HUdSSwvoYr1Ly80dwDP1JtvtKh2MeO8eG7eZgM36lj7SzSatIr9V0W5SD5355V7H0iU5Z1RJbQzpCRxWUfLL5DPz2l3bfgbvNywLhx0+I7TyoAptmHeI8EOlNVEBFClY19xoIg3kxNfh4np8DdIYWZul1iUq4a43eaijsoqog/WWMx9bybGzrTVjwnPJxvQ2cq9qrV2scl66suL+tNzfbSDI/795arDD8JTIPOy/vbzbbk6cg== 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: Chris Li =E4=BA=8E2023=E5=B9=B411=E6=9C=8821=E6=97=A5= =E5=91=A8=E4=BA=8C 13:35=E5=86=99=E9=81=93=EF=BC=9A > > On Sun, Nov 19, 2023 at 11:48=E2=80=AFAM Kairui Song w= rote: > > > > 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, fals= e); > > - if (folio) { > > - __folio_set_locked(folio); > > - __folio_set_swapbacked(folio); > > - > > - if (mem_cgroup_swapin_charge_folio(foli= o, > > - vma->vm_mm, GFP= _KERNEL, > > - entry)) { > > - ret =3D VM_FAULT_OOM; > > - goto out_page; > > - } > > - mem_cgroup_swapin_uncharge_swap(entry); > > - > > - shadow =3D get_shadow_from_swap_cache(e= ntry); > > - if (shadow) > > - workingset_refault(folio, shado= w); > > - > > - 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_HIGHUSE= R_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. Thanks for the suggestions, I prefer swapin_direct here, will update with this name and also make it return a folio directly.