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 369E6C3DA41 for ; Thu, 11 Jul 2024 05:07:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8B08E6B0092; Thu, 11 Jul 2024 01:07:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 860906B0093; Thu, 11 Jul 2024 01:07:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 727E36B0095; Thu, 11 Jul 2024 01:07:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 4C3916B0092 for ; Thu, 11 Jul 2024 01:07:25 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 02643A2079 for ; Thu, 11 Jul 2024 05:07:24 +0000 (UTC) X-FDA: 82326288450.01.7BAC4EA Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf16.hostedemail.com (Postfix) with ESMTP id B6CC818000D for ; Thu, 11 Jul 2024 05:07:22 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=W6n8YsNA; dmarc=none; spf=pass (imf16.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.44 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720674416; a=rsa-sha256; cv=none; b=nHMpBJTauXIcN2z8E3bdnAyTK+P0vc4bNquD8t3sOt0tTMQWtzdGDgstxP9f94QvLqW9HW zpxzZGKQwMvAibIQfyrADvrQ1itd0XhKUk9GCZz3QPdBHKYee32+ef0q+ePYOD+QdXTKSA G5W406ClaN9WvvbEMMePEG5JnCSxc+Y= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=W6n8YsNA; dmarc=none; spf=pass (imf16.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.44 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720674416; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jtRyIrmKJ/IBvDIrDZPP2KUo8CcYvxcVDEjZhvnGRqk=; b=d86NidqmOTmP7epMiqKZ6/sn+7gN4BtCoHfjuLPnRfkH9PMgUzl/4d1+RXNugd4SBCTUB2 I40gVr+9ReUenF7Zs5Kom/+nt3Pbh5nk0df9Pd+Ygb96yOiUepcORn3O7cJxiX+h/rpMlE ZYi78bDsrHUSuuIizH8t+6HXBbdRCa0= Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-58b5f7bf3edso338737a12.0 for ; Wed, 10 Jul 2024 22:07:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1720674441; x=1721279241; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jtRyIrmKJ/IBvDIrDZPP2KUo8CcYvxcVDEjZhvnGRqk=; b=W6n8YsNAFE8B39S14BmITvwvs2SkIBl8l0NllDe+WYAlEM9wW8NYPDgZkjNggDvH+l CO6Bs6p+ksnS8ZKgaR8124Sy560pAB01Fe9i/fAOS6dheZHf623e2fUH561gm0RKQ9ek 9Xivzc1qOtYx0NS2nMwlfCejqPAsmbQNtZgPo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720674441; x=1721279241; h=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=jtRyIrmKJ/IBvDIrDZPP2KUo8CcYvxcVDEjZhvnGRqk=; b=mYEOdpdfICr5YX8cIkC8BCsq4X0R+uBmvkYSGhfdKmS5aOeY4WkHxPWLft2VCjDomq EwGWX3CE2nFqf0fVTktN04nHUeoJAQmlhw2nZm4A2gSTzVIUBBtIozRmAMjoSzALkEg6 vBvYZh4j0UISr2kdNnZZLrBv1ZshlAZ9g1QhBiRyikprbif8sPhgEVov5r36aJEQ2deo FS8/2Vn0gK4t15aiJaay2Tbj7uPD9W2DdgGCnQJEjeOceoZQtJJ9Iho/mC2AbMJkY1Zo LghwjwfjCOiD3Iz2+ljO4HafXxmb01KYZW+VcirhD7cuuNyrv6yGGUBZQ6nXOgkoIPLU /StA== X-Forwarded-Encrypted: i=1; AJvYcCUrEE0RcyvOkNGIAND8lDlcOA2LiqNm5NnSpQQG9aPK0mGhCiwWdcBXD81U+7u1oYL4R5UfMQLPU0gGYCfflYUkTmA= X-Gm-Message-State: AOJu0Yy0PQlev9/HFa6zvOVtfcj8TDvoZwdmCJtSux5AHBivIw+MZZ1L nd5G9GaCdV435VzrUFIcFGxJahiMSdYFnTptVMafWJWEjH3gbKBfHeDLEx6aqLzPw+pPUVJaU6h Q X-Google-Smtp-Source: AGHT+IEOOEHwC/7OXl8oGP03HsPYNkMan7Aa252YTcB1eFY5zb68bH3qgeGbScg43GRtJ7u/45bFKg== X-Received: by 2002:aa7:ce1a:0:b0:57c:5f77:1136 with SMTP id 4fb4d7f45d1cf-594bb7745f7mr5916854a12.24.1720674440917; Wed, 10 Jul 2024 22:07:20 -0700 (PDT) Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com. [209.85.208.42]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-594bd459af1sm3011925a12.59.2024.07.10.22.07.20 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Jul 2024 22:07:20 -0700 (PDT) Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5957040e32aso341046a12.2 for ; Wed, 10 Jul 2024 22:07:20 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCVYwkTT1hoTFXVIXhZMpegiQL+2VizBVy1/7tQTuhCqR3LvaVMSM7KbHJf3MczUAYHj86IOAlTHOwRDkFZjHfnkUWU= X-Received: by 2002:a05:6402:134f:b0:58d:77e0:5c29 with SMTP id 4fb4d7f45d1cf-594bb181cb8mr5703709a12.10.1720674440224; Wed, 10 Jul 2024 22:07:20 -0700 (PDT) MIME-Version: 1.0 References: <20240709130513.98102-1-Jason@zx2c4.com> <20240709130513.98102-2-Jason@zx2c4.com> <378f23cb-362e-413a-b221-09a5352e79f2@redhat.com> <9b400450-46bc-41c7-9e89-825993851101@redhat.com> In-Reply-To: From: Linus Torvalds Date: Wed, 10 Jul 2024 22:07:03 -0700 X-Gmail-Original-Message-ID: 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" , 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" X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B6CC818000D X-Stat-Signature: kweuoz4w58je5yrth5dyzc1n1gn651bb X-Rspam-User: X-HE-Tag: 1720674442-542236 X-HE-Meta: U2FsdGVkX1/yDRrGYclucoD/uBONVzAqereDRdBifz9Da6vitE9D9PEPyfK/o6huCBYUNIk5eh9uiZoJr9bG7XpDvl454zoJqFtzb1GdOcM5bmU1UrWxpGjxIbGb1m+dHzjpOdlGvLz7l4Zg1e4D4ptLgSsgE0lFuL55RcwhDEtbmNzBAYWWYFfcPaoLPbAE3sqiZ1lRmUbzdkFhugwsFHuAFwKE/jNmP7It0V0wRvwbYdiivhvM5xfjeCWlB5bUJSSBNrRc6bEawXXnvU34YpEzIchxmyBUNA06WE9I3j4lBYZK96q+4+znaQiQ6g7N1FPZ8HqCtnpm0XAWVCSi+iIPBfIsr1FqLGHe9+zr4Wob+wnyQ8dY4BwRFoHVJW/EFxVPyFUaqxTPh9NfYhENx5hT10lSHN883+bWchtQ60IsuZeGRkPdeYIMc5veAZAH/WmGQhV2xndj4rDuktGLIJQF7+37wcFdP8jSS53f1PCXXRMHJrMHj1Iv1wJpo5iXHrmWbTtZSpbFO/ycNIY/GQeqXEFRtKqHdIayFRulMn+eUGdrvlzvXYfWSGA8mPmda70Cw2Slu1pdiPJZeeGtFn7qiS8OFwvaF726KJwU39T+5JjdTzsgFKM/q/T10ESO1Mwb1ny4CLcf4ZrZPdExkbHPYDwij6KIWoaAEJhdww80jGs52V36/jLZ8Q1ZspvOgvfnAlxvP0byvNJXH6rSoNwnAliYsz+LQec6TF/uka7SxN5HwYXS0j9sj3tXbCyaDuNkLF6sks68vsHxLte2Da898LOo9NII5pZKqImanhbzoGUjnTYGA07xlyXXSNJAqXeS4qgbf5QnQ/zz4vckfKhO46O8J4dpPl8wWQeePsiJM6tedzapRVh7h4hhPv1svBecuxBevT5AewM+fRhCdUgyo/ySMFjhO1+NEmFTrrWHywsiBo5C5b+DU51173tC8B/yigGqx1otMBqtcsU 9CUbhZsB 4NKzy9N31sX/yUvhU9bKSCpI+wU1y0FAq5xn2EcEgoRhcwslPzczM5z07a77ptoAM5tF+0R2UMWFqIBbb1DGfJZ/EildKnc0TBAp5QC2Zx3emg3W9dz/kSSgJymrivy2E2yPvz+w2/mcyzrpSOladNywmLx3YBWnYSq3iWUzCfdV1oRnXY3DUTS0mzqsY41nY9Y93vJvIFaFLLaRJm5ZfOk46qPsiZw15fsX+BOjqQfj0oUYS2GW/mMGzMnNejF9Yuequ78wS8F7zZ65b1K+NKHnSsTsJUnJgqS8gMZqx05mA8AgY9rsjNBg8B1XxIfS3P3yDStF5k3B3xHWR1k2kz6k9IsiGje0NdS51EyZaK7VK1eLXTwJNOGIKPlavEFsZQzABFJsyNQvi5z4mPDKqyO+Fn4Lqmzco79MLu7+HUa6PRtMZGNl7W7tUUUUDazz+v4TwQlX1Fau7ZVj1VOUVS4E7mE9RI85NuA2ZxBI9buvSWpQ7Thih/2cxtfZrkaLwb56MYkiGLxHo5rjrifVcyKipF4m77yjeUz1cKmPvJcFEBlQ= 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 Wed, 10 Jul 2024 at 21:46, David Hildenbrand wrote: > > Maybe we can find ways of simply never marking these pages dirty, so we > don't have to special-case that code where we don't really have a VMA at > hand? That's one option. Jason's patch basically goes "ignore folio dirty bit for these pages". Your suggestion basically says "don't turn folios dirty in the first place". It's mainly the pte_dirty games in mm/vmscan.c that does it (walk_pte_range), but also the tear-down in mm/memory.c (zap_present_folio_ptes). Possibly others that I didn't think of. Both do have access to the vma, although in the case of walk_pte_range() we don't actually pass it down because we haven't needed it). There's also page_vma_mkclean_one(), try_to_unmap_one() and try_to_migrate_one(). And possibly many others I haven't even thought about. So quite a few places that do that "transfer dirty bit from pte to folio". The other approach might be to just let all the dirty handling happen - make droppable pages have a "page->mapping" (and not be anonymous), and have the mapping->a_ops->writepage() just always return success immediately. That might actually be a conceptually simpler model. MAP_DROPPABLE becomes a shared mapping that just has a really cheap writeback that throws the data away. No need to worry about swap cache or anything like that, because that's just for anonymous pages. I say "conceptually simpler", because right now the patch does depend on just using the regular anon page faulting etc code. Linus