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 8A2F7C38150 for ; Mon, 8 Jul 2024 00:08:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B305C6B007B; Sun, 7 Jul 2024 20:08:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AE1666B0082; Sun, 7 Jul 2024 20:08:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9A7A26B0083; Sun, 7 Jul 2024 20:08:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7EBB36B007B for ; Sun, 7 Jul 2024 20:08:52 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 0C32AA39E9 for ; Mon, 8 Jul 2024 00:08:52 +0000 (UTC) X-FDA: 82314649704.07.0106A91 Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) by imf23.hostedemail.com (Postfix) with ESMTP id C62C514000D for ; Mon, 8 Jul 2024 00:08:49 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dTYC9SVX; spf=pass (imf23.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.174 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720397307; 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=AxHB4WSH7xbSrF4sriiEMDo3clBzyxps6KE5BYXF8FA=; b=vSHoRZmNPQIvoMmGnKdiSjO4GkRJ1twJI/05F4TUemV8DBToBbU0BSiAXHeDPUWG99TvEH sXOhVlO7MSbT2E/VQOV550jZ4GrrrJw2ytkwkRAY+CE8YyWrSuZjJJq2o+p9DWIL/yp4lC 6sLsB0iRwxMVt3OfBWrX2MqmS1w8474= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dTYC9SVX; spf=pass (imf23.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.174 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720397307; a=rsa-sha256; cv=none; b=aG4o2+2ADmo0d7UJb8PXVcYAmXNq7N8pFqBqPCPCr33PzKoey9teuU4cfgn+w5E6l4pK7B qywf87NntOxKkRy3/wbVAq1w9+le+0sDwvV4xMb8S4uKG1ozXN0tDBpmM0bem1y9FUpvE/ OHq07JQ5aKepL8ihGzqp3An/rWIXkzc= Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-2ee92f7137bso26435971fa.1 for ; Sun, 07 Jul 2024 17:08:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1720397328; x=1721002128; 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=AxHB4WSH7xbSrF4sriiEMDo3clBzyxps6KE5BYXF8FA=; b=dTYC9SVXY3p21G6Pygwysaw2gzBufw4+9zFz1IFsSuqwZfVrOrpd0IHh//XzkhaYd1 uSPg9YZ/b3L52Cf+1iKjqBrWmahIFwykFhVfpYb4jpkscyrI7+3AgeqtTAombTG7SjgS rsQB4t3yI45TZ+678Wu6XMn/ufjOXT/qXQ3ss= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720397328; x=1721002128; 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=AxHB4WSH7xbSrF4sriiEMDo3clBzyxps6KE5BYXF8FA=; b=OzInfHnELtQgpukezBTnioWNSLHVAyX2ijTB6iag5sCQtNMSi91F26ZMGb178y/NZv Eg3kp37DrWGS8ppHKMtPSCO83fCtfDOnyxa4QK/5GchgNemPQfYdTGjcDmq+YVzpb1sd 6s+m68ZwhUSJdrR8Y/hGg5owTr3LMxyvn+FoZMxGaAma4cBh+wAlSX9IYGLhnEnsMO8o EyMDjQSI8YW4wIKzzMq9PXYasr96tRwYth10s0rqKqvrPNJD/9GlDTfGmo2Y9TUkPs6n UG2WI1wTy/PH+3Xaai1mCI1Dwg9LztIl/4pTC/ch0HOP4i1HDSFwnv59bQh8wPq+wuKf v07w== X-Forwarded-Encrypted: i=1; AJvYcCUAw8i8++RPRUlVG88y7rFtQkbhlMVC1OAXXYZgO44HndaCpsnvu6tWXAjXAIoTcf4YgZNCNuNOx9F57kOdVO1bvA8= X-Gm-Message-State: AOJu0Yzv03TIMdyet46OTZlTYTP+iqdhK+0JFDa/kES+VQysXIKl3i49 zRjn603ZYjXyYUqtPGWAr7zX9Gpi6k1PSbJ7VgJMRwhztZsMH2t8RghxRxbr7TodFfDTB3RU2or J1vVpcA== X-Google-Smtp-Source: AGHT+IG91adyzO4fhTtw4iMaexL6Da+tBJdeRympAmJwcIZFc1FppPMAwoDNf0XsVl3/SdUNJlQITw== X-Received: by 2002:a2e:9c8f:0:b0:2ee:7a71:6e2d with SMTP id 38308e7fff4ca-2ee8eda7465mr79610081fa.28.1720397327479; Sun, 07 Jul 2024 17:08:47 -0700 (PDT) Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com. [209.85.218.50]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-58eb85cc1bcsm4257884a12.94.2024.07.07.17.08.46 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 07 Jul 2024 17:08:46 -0700 (PDT) Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-a7527afa23cso405463666b.2 for ; Sun, 07 Jul 2024 17:08:46 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCW29IAzdBQRGAwzRXt1ONkyDKS+MUW3kmDm5/CS4YXDKO1FAdz4iARntlyxs9Xq9OxRcMNxqkYxqStyjHK3Dlv/gLA= X-Received: by 2002:a17:906:ce53:b0:a6f:af8e:b75d with SMTP id a640c23a62f3a-a77ba4552damr759244366b.8.1720397325858; Sun, 07 Jul 2024 17:08:45 -0700 (PDT) MIME-Version: 1.0 References: <20240707002658.1917440-1-Jason@zx2c4.com> <20240707002658.1917440-2-Jason@zx2c4.com> <1583c837-a4d5-4a8a-9c1d-2c64548cd199@redhat.com> <6705c6c8-8b6a-4d03-ae0f-aa83442ec0ab@redhat.com> In-Reply-To: <6705c6c8-8b6a-4d03-ae0f-aa83442ec0ab@redhat.com> From: Linus Torvalds Date: Sun, 7 Jul 2024 17:08:29 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v21 1/4] mm: add VM_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-Stat-Signature: dir6x5k56dt9r38443sbb9a6gimjfim1 X-Rspam-User: X-Rspamd-Queue-Id: C62C514000D X-Rspamd-Server: rspam02 X-HE-Tag: 1720397329-213145 X-HE-Meta: U2FsdGVkX18D5lDcqHAtn/HbnByUjpJGMGaXQSWIWeviv2KW1p2VEnWlUGE9g/IbBR6u85doMNvgqnL6NVmLXNRAABAXQYAMCbpIbWoMKzAe7ymM0n0sBd7gc7FiXuDGUbHvgKNcvgkzA1gm4hzssRPXM7ieKMOfkGT2XN2mm1ZespQaeqjs6R2jncct0+L6QecSNvC9C1O9r8Ju60EuQJ9j4Uk/LIG4B0bpLPYQdrufvNe/YZg2BGwqrL5MWLuKUvjMWYoJRNJvkmUclOzPeh660dL5ZbeNgypZNqsesX01PqO/lndv0yZzxm63CITS/KqLvBsllsh4OIqr0KJ//3sLGkTLOk+H8xHGxjY4kdryHITeClar2VE0X7za45lFCH2VTz4p/zuenHQedfye1yfa+HJssDY9di8VDEZxhub9eWq0fYQk2ByEZVai5Z1VHeVV7uuFqA7M7HftgmBEaGqr6kJqSCct5sobJMt3IjUm/HgxkjLC2Ql4f3VHSOx2SB4abc0OisyyHIHAnMrOn6vMalyTcviI5pVr+NzpRRWhZAM7A9TE1pf/tDsNqkgCcFCxeyASlDtgRHrXOplkvN2osH1eGJoUmbz5MtlSuEa48VKE5Yhb0bu0+DD88OUZ743kRdEM4QeF8UtFTeSdyGIhUpT85nCo3hBoBFbFfr/41tKb2stcQHVXMDZgSYBsRGsuSlmJlhvbsyyzM6ReMozXcAokryI35v0+Fiwg7BYKvilqZ8Plxlh/CohNfzFXpJtf4bRXokFlu4ti4RBDO3YKqr4o43SwxhmUIGyn4kUSIyS0V2kamrQaj9nRcVgVxVmBz9B6TzPn1Ja9f5+ADuhzRuH7Iqe/0IABFqAfEVaSae0EeLtW5xLIHpU9xRcLJwFlIjQ3Hh68vdHCpuOtv5AG/kA/ZIj1Ixc+JQbvZRLTNyRxxlmJlaSmwptB+fcDiNfXbKRATqWnPn50eG3 vqkxFNXS YUw044LlpqR9tHqt8pOEhBU1vp1J5HQUsURRnDFUgn+SE2SPfppB+UVzLZwWXiSn+/cihPQ62NPhUl3x5a53gPyilB0pTd1gA8NkVrJIzleAR+EKp6/+EEKvAAMpVSUq8mM98w+fongauH6Tm3H6fBJTcAE07r7OI+3/CP/oxGIbWulb/wH9HeHikhHSa4OFUy5tbReTZrIiOAxde3GZezyig7pD4PxbpImvZapeuQDLkmlG8wVTnIcPhtP+MAqmqL3nO0kX7LKdomJpz1ytVOcSUR8h5eLdgpbSBj0c/FjUolNS2EhMkWYGSb2d1HPJssqASV6/J5CoPCH8X3n7MhfhIY5Z/jA3rFa/9m4sQnMC9dXMSR3bntL1OsZwSdhIkOHzauN4yVxnP1Cx6o9//hrOR9nDRsTqm6ZWPraJz4al1+SmvvfhxAcWAfpcqAOtrowcejqeNxBjYY8T2EzfQxPQ9yskuDxsRadgaL/cdHs/OjEWO51gl5EDHETBUqD5iYUp4VKoejqzFilR91kuRp7z70XnUeF5CyCqEQi2LfQkgaicdrDUne3R9Ig== 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, 7 Jul 2024 at 14:01, David Hildenbrand wrote: > > At least MAP_DROPPABLE doesn't quite make sense with hugetlb, but at least > the other ones do have semantics with hugetlb? Hmm. How about we just say that VM_DROPPABLE really is something separate from MAP_PRIVATE or MAP_SHARED.. And then we make the rule be that VM_DROPPABLE is never dumped and always dropped on fork, just to make things simpler. It not only avoids a flag, but it actually makes sense: the pages aren't stable for dumping anyway, and not copying them on fork() not only avoids some overhead, but makes it much more reliable and testable. IOW, how about taking this approach: --- a/include/uapi/linux/mman.h +++ b/include/uapi/linux/mman.h @@ -17,5 +17,6 @@ #define MAP_SHARED 0x01 /* Share changes */ #define MAP_PRIVATE 0x02 /* Changes are private */ #define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */ +#define MAP_DROPPABLE 0x08 /* 4 is not in MAP_TYPE on parisc? */ /* with do_mmap() doing: --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1369,6 +1369,23 @@ unsigned long do_mmap(struct file *file, pgoff = 0; vm_flags |= VM_SHARED | VM_MAYSHARE; break; + case MAP_DROPPABLE: + /* + * A locked or stack area makes no sense to + * be droppable. + * + * Also, since droppable pages can just go + * away at any time, it makes no sense to + * copy them on fork or dump them. + */ + if (flags & MAP_LOCKED) + return -EINVAL; + if (vm_flags & (VM_GROWSDOWN|VM_GROWSUP)) + return -EINVAL; + + vm_flags |= VM_DROPPABLE; + vm_flags |= VM_WIPEONFORK | VM_DONTDUMP; + fallthrough; case MAP_PRIVATE: /* * Set pgoff according to addr for anon_vma. which looks rather simple. The only oddity is that parisc thing - every other archiecture has the MAP_TYPE bits being 0xf, but parisc uses 0x2b (also four bits, but instead of the low four bits it's 00101011 - strange). So using 8 as a MAP_TYPE bit for MAP_DROPPABLE works everywhere, and if we eventually want to do a "signaling" MAP_DROPPABLE we could use 9. This has the added advantage that if somebody does this on an old kernel,. they *will* get an error. Because unlike the 'flag' bits in general, the MAP_TYPE bit space has always been tested. Hmm? Linus