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 CE4E5C3DA45 for ; Thu, 11 Jul 2024 19:50:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 667776B00A3; Thu, 11 Jul 2024 15:50:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F0EB6B00A5; Thu, 11 Jul 2024 15:50:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4910C6B00A6; Thu, 11 Jul 2024 15:50:23 -0400 (EDT) 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 29CB56B00A3 for ; Thu, 11 Jul 2024 15:50:23 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 828351207B9 for ; Thu, 11 Jul 2024 19:50:22 +0000 (UTC) X-FDA: 82328513484.11.E8400FB Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by imf15.hostedemail.com (Postfix) with ESMTP id 9EFD9A001B for ; Thu, 11 Jul 2024 19:50:20 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=O3Hu3sX9; spf=pass (imf15.hostedemail.com: domain of yuzhao@google.com designates 209.85.160.177 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720727403; 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=j6WD8uWdmw8Cbo4EjYtrrPSI26ltEqhqtj652OLG+Q4=; b=CazBts1JI0sjmq8k4W2u/Tkv8gH31rG/OMJUat4oC7Mw0jX7/wH9lFmaFAMn8be+XrcIMV 04B2WC05YCfSoHORBdv+uBTOLsv7hyGuh3+UJ7DET9kNF8WLvA253pVPrj7p3ykvVwgkIk nVu2Ci1IhcCbzaKoZ09SLfKXyYoWLS8= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=O3Hu3sX9; spf=pass (imf15.hostedemail.com: domain of yuzhao@google.com designates 209.85.160.177 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720727403; a=rsa-sha256; cv=none; b=ug5DS5TUkrBJr9B3u//EAv5jvdQ6Z+fK7jW1+f9kirnYi4uQyFSSIlmo1wSdFw9axXNSpS D/MqIQwYCO+UMQFYD86ffh4tN32CKkLIYY+kMlzmGxQ67VL5zIswustQYecm3LpSZ7bV3O uABTMvjTWghxvB5BNhca9Wbv6McBXBE= Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-44e534a1fbeso58891cf.1 for ; Thu, 11 Jul 2024 12:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1720727420; x=1721332220; 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=j6WD8uWdmw8Cbo4EjYtrrPSI26ltEqhqtj652OLG+Q4=; b=O3Hu3sX9N/fMb8d70ys8t9xnEBDjPCzFbXehJy1I0YdiN8DmudRzTqs1cFztkMy82Q 6WWBTyjgdRkT6xVu8xTnKnLLqLxBvNac6+9sSoCZ0wlHCHAFIi4GIPRRtzhPyYS1CrJF Cyderpf18xmMUa2VTSRTckTwlY2Magy/KlXl8kN3g2194UjfwJtJTBmQlSjRYhimlTEm xMjfLjjsIn/zIkSkahku5bfIOFl/p9ZjZONxrla1UbgLPCPOLbP9ORmzkl4n81+C9+wh QDbcOTuF+4wuMrP+TNhlXA5L7RahTlNLm5uO631VuMREGMFS8aaBk4cmk+6fPGeoVRt4 iQ2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720727420; x=1721332220; 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=j6WD8uWdmw8Cbo4EjYtrrPSI26ltEqhqtj652OLG+Q4=; b=YSD29jigf6yeDYFEfhA0hGgcmyhe/JXVFYolK+Ibog1miXpr4+eNCHUhDptxOuHRpg eK5hT1bQaFJzBFWIrckmBFhLhr09CuFsYXr44x2omMzJbB0c02Y6RVpiFk986SryI0Di /Uj8QVqKpgT4toeYT3YGhOiZ2Vnu419YU4gflEcDJOIteMq3eDJ5HXBI1MLRHoixAj1n CflSHqOJ5Ef7Be4vsZQ94ughkBa/qbnAfbPpZjPB/kL9pOuB9AL+TlLcL9QLarNg6Wyz zx2zbCVkoEHxUqp0CSJQjimdEQpPaCefIVmVrHUnjmbnQoHwsxvAgT2Fz/YDAyiode4w htHw== X-Forwarded-Encrypted: i=1; AJvYcCWe5IBRzytP2dE/uGA9RANoMjQdUz0JF/RXU3C7yn++m6TokePwbwrosAJYIFkmHPUvRSXPca4YcVRaJoCi9EJcK/A= X-Gm-Message-State: AOJu0YxuYCMNcnKm8f/yF1wRllJFlFImRio8ub1IOp7D/a+DobY1CrU7 rJ6puue52Fmm2AGs5HtmN8zdXqHmgoftSYJdaPctfikfqWxWOI5ejxofVavoqpEqzUnrYup64Ts 4RlP5JQQGqBWjnpqZWkEF0y51njT5xWx0YuOj X-Google-Smtp-Source: AGHT+IENr3A77Xgxppnz3neQHMLruOsrOFPG5UHll8ma7WhGXms3uuMDcSKNpckxI36I3OJ7mkiV/BUN34ZoGEJxGdg= X-Received: by 2002:ac8:710d:0:b0:444:97b7:e3b1 with SMTP id d75a77b69052e-44e79101746mr496381cf.13.1720727419548; Thu, 11 Jul 2024 12:50:19 -0700 (PDT) MIME-Version: 1.0 References: <98798483-dfcd-451e-94bb-57d830bf68d8@redhat.com> <54b6de32-f127-4928-9f4a-acb8653e5c81@redhat.com> <8586b19c-2e14-4164-888f-8c3b86f3f963@redhat.com> <443146f4-9db8-4a19-91f1-b6822fad8ce8@redhat.com> <1c8632b4-06a5-49da-be0c-6fc7ac2b3257@redhat.com> <2c464271-1c61-4cd8-bd4e-4bd8aa01fa00@redhat.com> In-Reply-To: <2c464271-1c61-4cd8-bd4e-4bd8aa01fa00@redhat.com> From: Yu Zhao Date: Thu, 11 Jul 2024 13:49:42 -0600 Message-ID: Subject: Re: [PATCH v22 1/4] mm: add MAP_DROPPABLE for designating always lazily freeable mappings To: David Hildenbrand Cc: "Jason A. Donenfeld" , Linus Torvalds , linux-kernel@vger.kernel.org, patches@lists.linux.dev, tglx@linutronix.de, linux-crypto@vger.kernel.org, linux-api@vger.kernel.org, x86@kernel.org, Greg Kroah-Hartman , Adhemerval Zanella Netto , "Carlos O'Donell" , Florian Weimer , Arnd Bergmann , Jann Horn , Christian Brauner , David Hildenbrand , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 9EFD9A001B X-Stat-Signature: q4cwu87agk9oubtibrjw7z6a3wmcnuwb X-Rspam-User: X-HE-Tag: 1720727420-579949 X-HE-Meta: U2FsdGVkX18RwQC2JjGxKQ5+KvflBzgEYyxlDd6E0lz58qoIzxLh/K5aEKB7xv9Iete7jNKyfQIXiYGvbewCcsWsAWeeUBiC//mh+TNmKCizPFKXtYhaSFGb9SnqBbXq2gJvM5mSJwprXHChA6D8KXsBnAynlP4O1NOdBwOgPibtfepKneo3tdqVS1qRGuuWNOCIrU7IFsskMVqhJiG1SwovF8laHvZ+pGc9pdQ8h8ocqnd4AWQPF6RrktRg5omYNrMvaKchb2mPLcUltfn/HSP9PRoM0tynAIaNEGbS9Ao47gbhUBQ1gICgreKoiyjvcxH3Rzt2scxv4tpf/hY8fc308aNtcfLS0PxDJ42hpUPIni6dkiRZlXrqkW3JJirm9Op2JNoq0VzN5GV3A0SlEakVCrhTl7E9exu3j5i5t9iTaWfFJpu4lPI44u/psK9e9bI8pINm2u1ch/Ivu08m5S3klI8SdDDCNZXaGUDs3HIezo9bFZzdqrX3+nnhGpWrKz+ZE6f/rArp9MIj8azSku1Y9Y3qRa6sgD+NRoZtFCJqWhvuI9Z+hcTAPxSlGILp41xRSrRWA0RQKo9N1yTof2bY438IIH1yTnYuy3vrcr/t+pd+1NqBnQVISvM2lnJ9pgAIOSMgutne4mTgc/Z/bhuE09OYdzNFKe5LVKKpR2jIFwjbl6h2CvAnJnN4Jj/nFnTx5MqChCKejKzOrLaitlmYdZUNHu98J5iRPLiWUV6XNOuryExtLsiUNBih+A5SfBxk3mOJWhXL13ejlMNm1dNec7N5Yf5fIRl/biQq89QmejGc96FX5byfBZL5kz8ANwfVFRft/MDhMdiLpLSt2vN07z2KAtYES062YFxPmW8ksEYrndqkB8l3RuN0QADn+Lzo+y6a/28RI2MHsNVwIV9F7L+fBLmaIcoHFY2CdtJC7/PwW+KWxqgb+BADfevWPRudZ8hVgjHeXd3GdNQ L1dbHZX+ 6EtLOL9DPDUcRwKxeDo2XdvBIlIVpiXuh77t19Ogd8yYsuFUM+Pt3W8iFKXLbv2GaKcRMVcIiHMYqGZXnq2Nd3nfobFX+6d6YP9pLFS/UcLNMIDX5cU4sA6Jiqojkr1rn5RkmRX83j9qv5l+maWyfIEqEClqHu+Bv0UxgrKkUiFIxJPcqMwy9cOIGpoXH3Oi/uDodHISqfvA40xROKYPplAdmlcCNgQScs7zI1XvkUCd2J5Pl53KrR6ndbg== 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 Thu, Jul 11, 2024 at 1:20=E2=80=AFPM David Hildenbrand wrote: > > On 11.07.24 21:18, David Hildenbrand wrote: > > On 11.07.24 20:56, David Hildenbrand wrote: > >> On 11.07.24 20:54, Jason A. Donenfeld wrote: > >>> On Thu, Jul 11, 2024 at 08:24:07PM +0200, David Hildenbrand wrote: > >>>>> And PG_large_rmappable seems to only be used for hugetlb branches. > >>>> > >>>> It should be set for THP/large folios. > >>> > >>> And it's tested too, apparently. > >>> > >>> Okay, well, how disappointing is this below? Because I'm running out = of > >>> tricks for flag reuse. > >>> > >>> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > >>> index b9e914e1face..c1ea49a7f198 100644 > >>> --- a/include/linux/page-flags.h > >>> +++ b/include/linux/page-flags.h > >>> @@ -110,6 +110,7 @@ enum pageflags { > >>> PG_workingset, > >>> PG_error, > >>> PG_owner_priv_1, /* Owner use. If pagecache, fs ma= y use*/ > >>> + PG_owner_priv_2, > >> > >> Oh no, no new page flags please :) > >> > >> Maybe just follow what Linux suggested: pass vma to pte_dirty() and > >> always return false for these special VMAs. > > > > ... or look into removing that one case that gives us headake. > > > > No idea what would happen if we do the following: > > > > CCing Yu Zhao. > > > > diff --git a/mm/vmscan.c b/mm/vmscan.c > > index 0761f91b407f..d1dfbd4fd38d 100644 > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -4280,14 +4280,9 @@ static bool sort_folio(struct lruvec *lruvec, st= ruct folio *folio, struct scan_c > > return true; > > } > > > > - /* dirty lazyfree */ > > - if (type =3D=3D LRU_GEN_FILE && folio_test_anon(folio) && folio= _test_dirty(folio)) { > > - success =3D lru_gen_del_folio(lruvec, folio, true); > > - VM_WARN_ON_ONCE_FOLIO(!success, folio); > > - folio_set_swapbacked(folio); > > - lruvec_add_folio_tail(lruvec, folio); > > - return true; > > - } > > + /* lazyfree: we may not be allowed to set swapbacked: MAP_DROPP= ABLE */ > > + if (type =3D=3D LRU_GEN_FILE && folio_test_anon(folio) && folio= _test_dirty(folio)) > > + return false; This is an optimization to avoid an unnecessary trip to shrink_folio_list(), so it's safe to delete the entire 'if' block, and that would be preferable than leaving a dangling 'if'. > Note that something is unclear to me: are we maybe running into that > code also if folio_set_swapbacked() is already set and we are not in the > lazyfree path (in contrast to what is documented)? Not sure what you mean: either rmap sees pte_dirty() and does folio_mark_dirty() and then folio_set_swapbacked(); or MGLRU does the same sequence, with the first two steps in walk_pte_range() and the last one here.