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 88A01C54E58 for ; Tue, 12 Mar 2024 08:40:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F0A628D001E; Tue, 12 Mar 2024 04:40:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EBAE98D0017; Tue, 12 Mar 2024 04:40:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D81168D001E; Tue, 12 Mar 2024 04:40:38 -0400 (EDT) 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 C3C158D0017 for ; Tue, 12 Mar 2024 04:40:38 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 737D01A0967 for ; Tue, 12 Mar 2024 08:40:38 +0000 (UTC) X-FDA: 81887740956.19.66981D7 Received: from mail-ua1-f53.google.com (mail-ua1-f53.google.com [209.85.222.53]) by imf01.hostedemail.com (Postfix) with ESMTP id D8FBD4000E for ; Tue, 12 Mar 2024 08:40:35 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=A22wPUnV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.53 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710232835; a=rsa-sha256; cv=none; b=2u2cvNF2Gsk/jvSyLmmmBxtsKiUvU1rpmy3vqO8Jf00P3MinKhjcPFXXs35ABuKE5x7mPf X3jYVe2BbQcdJovtrZc8eMxvmjDa73+woTAbGvhab/eNaPxb0r3EZkfbu/xCeVjnbpvt1h yjpb7exJdf0gBqukx8w2EjAxbUjSllA= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=A22wPUnV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.53 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710232835; 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=qKP46eG5/saPxTsFb0tVFVswud2dVG5J2Sni0MTUMQE=; b=cyno4Gu8m7gKxB7wM1SwfTzk4TGbmkpjV71igTbaT6rzUArKGDoqztSHUHl4sZadgvBeHQ EAkhmqWOd8FgmeeUr/LA9r3quwHyg+8VSPuyDPDMJrHEZxJ71CRht7HTZBnF/xicv1f7bs pIWy67hZlXpP3IGsK2WY/seperhfTkk= Received: by mail-ua1-f53.google.com with SMTP id a1e0cc1a2514c-7db123701bcso2189286241.2 for ; Tue, 12 Mar 2024 01:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710232835; x=1710837635; 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=qKP46eG5/saPxTsFb0tVFVswud2dVG5J2Sni0MTUMQE=; b=A22wPUnVmFgGy0EYYRvOxNKjLHtEzQjAfD6mkkuxar3UHu8GmiPafZPI6dGfdvGuvT Pf/Ltnio60AWP0XtEUDp3dV0k73GXwjoAfZjR/T5pxPpcSFriIxQodRyFAP3mulWJH5F lSh1fsC7BEQejSsSr39wA2dGFKGxZY025irh2K14F3oJf+YmLI7CbUewWFgAjh23PIFc XuFAvn02mOqyIg8ubSJx2D/ePfZBfL/VU57aFIFWYhJedhPDRXDL6C4iZOuqfFO1p2Tx 2cwu54WhrKKpLVlRRm45pWWen9/HJP6RqBtg9J7IhfBGOJ9fiARAHVRwG2WsH77d/5dY irHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710232835; x=1710837635; 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=qKP46eG5/saPxTsFb0tVFVswud2dVG5J2Sni0MTUMQE=; b=lgFE0N15Jrlj2k0U33K0NfaPKICZfl6S1tjdC8Ezr+LiP5+rVIzXYi6HB5nJlgGBX+ xBCWFgSp16Z43GjUlV/UR7/x7iSVwHK1ob3Ai/+uN9+69C2WPkU4VRt4TevILyAe3e27 ADk0BAqterPtj4ITYB8U+f2uY3VkhAhv+cR7E1AajDOveCGNQJeNh4SeIwwF38ayCeuD yBDxQjFxu7tqKTsY4jaXMtBjSfAgVgkTQn/1QxL6n6EvPh7sTwKH+vBfpdeDQMmiQRak ZU/ijchfrtDYy/jZEzKgqsXQNUKrL5JT6Clayzza+CfyjmK77NtDexJtjDsAg7KzZTyG nFcg== X-Forwarded-Encrypted: i=1; AJvYcCUhj+3vye8MpmDYV46x/m1v50M9f9mPNB5KP2QYIj0XRwBW1h4FL4ruLdmg5qD6enn/ggTghszCI7iHLWmoC5bbydE= X-Gm-Message-State: AOJu0YyL5A4bEMpVdY5Kw9rwu87vpG/hQ9O6QJGw6pva3fIfMgp80Qb8 XSSNNwBkPWthRd2nEu1VGAsVsEUxfv314KzghEfOh4daQtQulVn88P1Ntf1PXKOOU8HuG3wA22t 21xDf2RHdxBj/DFBleyNlltcc/cDWEWmaOGQ= X-Google-Smtp-Source: AGHT+IEPtAgVwQ5+RwMGBe5KAm2qJ01EYqT5RmcX7DUpqLLBOsFL5WQpGQp3feejuccQRlMrt4vtgzJ8KwXkyOe6oYA= X-Received: by 2002:a67:ce92:0:b0:471:e032:8c8b with SMTP id c18-20020a67ce92000000b00471e0328c8bmr5545892vse.12.1710232834868; Tue, 12 Mar 2024 01:40:34 -0700 (PDT) MIME-Version: 1.0 References: <20240311150058.1122862-1-ryan.roberts@arm.com> <20240311150058.1122862-6-ryan.roberts@arm.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Tue, 12 Mar 2024 21:40:24 +1300 Message-ID: Subject: Re: [PATCH v4 5/6] mm: vmscan: Avoid split during shrink_folio_list() To: Ryan Roberts Cc: Andrew Morton , David Hildenbrand , Matthew Wilcox , Huang Ying , Gao Xiang , Yu Zhao , Yang Shi , Michal Hocko , Kefeng Wang , Chris Li , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D8FBD4000E X-Stat-Signature: ahwuq5fpsq5epd14ca7md9j96wes4sg9 X-HE-Tag: 1710232835-869379 X-HE-Meta: U2FsdGVkX1+jBmoW7yHShpcKS7GvldIl9nFmCMHnDhR1rrZq3NuLyIU5nbmVMAZ3NXK6w4/6yM53OE9cwcqQe/KOFnTk6d/hFIus8tBoItzEwKdWJazxNqW2M68VOphVi39dqugfjo5StAWIzOWor4BmYbgagTUJ29sN+a+pV+MlTnb9I22t6OY4i8a00osAFStkAIRu65xBNym1yIG7WfLMmBENAMavfNsvjc2Mzw+gLxA+sWhGU5aSL4noRXBWGDAcKgRnUn76LFRI6pUAWl1aBoxpXdMbKtCbmOAhadvoDhyeKgw6p4U4eiirtpDh4KVNAyFj5CSb/cng7rU3r0JWqscD1NPCXSG6Oe7qRkdDqdXDSYnYfYoMzs48onMU0azjVotf/7aCUg32xBDTF1bIJhxUpnuDRDWlLwEoYvNpvGNRCCU5JOggxpWbWQ+YuWfg4/1FHbZnhZrJ7i5xGN882N3hCeoZe6PEBgVq9LebGtbKoz1M1SS4qmwZnkcp3KTamDEn++KpNw+sMi2oXEKd1YllvnuypZfW+I4vSANe2VH/M1IMaw7ZTRoMgMddlq+zydaXWXj5dbwXb5vGpUg7yGrkYybaxwss/5XyrQc041a6xb+00irseoHdCeeuODVWFfIIp7VEO/hHdrkI54H98s3Rgg4oD8Y+AwJAaW3rWlPT9Al9W0rCLOlkeRzNbJb/7aXjafUs440vdf4kePuBcunvk/sI8dRrKhDBQZDhScwfvFOthk6xUM2afbX9EUDPVKPAj5U8BqW/ygDgtO8ulXe/gyEctmyW78O91qP9RmYN7k5w8bf43XvY4L/NLIW/r68GRVb9Ckk8D05vOteHk7I44GfTlc0ZJmpEfUBke8imJhj3PCLsfYsAU5Sb2BuZvxCRBqZc2wrGUkCI9oI9mDNv/bMInd9eMHo2P+Ga8EaCRhrZvxcnEPZKgQfPdwzq46//LspG4IYmkq9 W/d+8UFc Th0V+dtlMywDVMKBrffxsd2F3YZe0CaO5Bqa7j3TFOYsPU6zwBatybmmlhQWTJ+UEpsI6q0xlqUcHumbgaDIqq7shzA== 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 Tue, Mar 12, 2024 at 9:12=E2=80=AFPM Ryan Roberts = wrote: > > On 11/03/2024 22:30, Barry Song wrote: > > On Mon, Mar 11, 2024 at 11:01=E2=80=AFPM Ryan Roberts wrote: > >> > >> Now that swap supports storing all mTHP sizes, avoid splitting large > >> folios before swap-out. This benefits performance of the swap-out path > >> by eliding split_folio_to_list(), which is expensive, and also sets us > >> up for swapping in large folios in a future series. > >> > >> If the folio is partially mapped, we continue to split it since we wan= t > >> to avoid the extra IO overhead and storage of writing out pages > >> uneccessarily. > >> > >> Signed-off-by: Ryan Roberts > >> --- > >> mm/vmscan.c | 9 +++++---- > >> 1 file changed, 5 insertions(+), 4 deletions(-) > >> > >> diff --git a/mm/vmscan.c b/mm/vmscan.c > >> index cf7d4cf47f1a..0ebec99e04c6 100644 > >> --- a/mm/vmscan.c > >> +++ b/mm/vmscan.c > >> @@ -1222,11 +1222,12 @@ static unsigned int shrink_folio_list(struct l= ist_head *folio_list, > >> if (!can_split_folio(folio, NU= LL)) > >> goto activate_locked; > >> /* > >> - * Split folios without a PMD = map right > >> - * away. Chances are some or a= ll of the > >> - * tail pages can be freed wit= hout IO. > >> + * Split partially mapped foli= os map > >> + * right away. Chances are som= e or all > >> + * of the tail pages can be fr= eed > >> + * without IO. > >> */ > >> - if (!folio_entire_mapcount(fol= io) && > >> + if (!list_empty(&folio->_defer= red_list) && > > > > Hi Ryan, > > After reconsidering our previous discussion about PMD-mapped large > > folios, I've pondered > > the possibility of PMD-mapped Transparent Huge Pages (THPs) being > > mapped by multiple > > processes. In such a scenario, if one process decides to unmap a > > portion of the folio while > > others retain the entire mapping, it raises questions about how the > > system should handle > > this situation. Would the large folio be placed in a deferred list? > > No - if the large folio is entirely mapped (via PMD), then the folio will= not be > put on the deferred split list in the first place. See __folio_remove_rma= p(): > > last =3D (last < ENTIRELY_MAPPED); > > means that nr will never be incremented above 0. (_nr_pages_mapped is > incremented by ENTIRELY_MAPPED for every PMD map). you are right, I missed this part, we are breaking early in RMAP_LEVEL_PTE. so we won't get to if (nr). Thanks for your clarification. now we get unified code for both pmd-mapped and pte-mapped large folios. feel free to add, Reviewed-by: Barry Song > > > If > > so, splitting it might not > > yield benefits, as neither I/O nor swap slots would increase in this > > case by not splitting it. > > > > Regarding PTE-mapped large folios, the absence of an indicator like > > "entire_map" makes it > > challenging to identify cases where the entire folio is mapped. Thus, > > splitting seems to be > > the only viable solution in such circumstances. > > > >> split_folio_to_list(folio, > >> folio_= list)) > >> goto activate_locked; > >> -- > >> 2.25.1 > Thanks Barry