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 5B117C5B549 for ; Wed, 4 Jun 2025 12:19:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7CFB6B04FC; Wed, 4 Jun 2025 08:19:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E2D6C6B04FE; Wed, 4 Jun 2025 08:19:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D43656B0500; Wed, 4 Jun 2025 08:19:32 -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 B52846B04FC for ; Wed, 4 Jun 2025 08:19:32 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5AA1E1612D3 for ; Wed, 4 Jun 2025 12:19:32 +0000 (UTC) X-FDA: 83517623784.23.C3985B5 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by imf21.hostedemail.com (Postfix) with ESMTP id 29F491C0015 for ; Wed, 4 Jun 2025 12:19:29 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=iVXOKB48; spf=pass (imf21.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.128.51 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749039570; 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=7va4B4zo5RMoE8/q1VOrd2uGJHuIadY3crtc+x7HSIs=; b=GwIKTSC8dIqmiHSVHF3clKxmNW0sZGyCaoUkW8b1IReqpZQOoBcfRgPrC8ssILHxHfdg2J F9RqRBuBiQCOKC0vyfL0vDFij76zJV+Y+WsIvAIxnp67MIPThfz45ye1Q03lrcZSBctsNG gM4dqWx4O/X2FkOjNrsbjEFK8+eXq4s= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=iVXOKB48; spf=pass (imf21.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.128.51 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749039570; a=rsa-sha256; cv=none; b=FtBJK53Ak/7RW3XaXYY5svL/IYtVg/F85Ft3LJCRxKbeXIdEFQt+MeVIAJkz7HRR6L8cBD MTCNs9qNmotL0CVDeeQstz2DYsKRkQ+JNGsWDD2zJLg7vbPkL+2AvZfNg9DQnjSqDPb3yg m2nKdLOkRrphBuOdrvEcGY48tz7kpvE= Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-450cb2ddd46so43886365e9.2 for ; Wed, 04 Jun 2025 05:19:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1749039568; x=1749644368; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=7va4B4zo5RMoE8/q1VOrd2uGJHuIadY3crtc+x7HSIs=; b=iVXOKB48iQaNCLwTYKeT+ZaY63+y//+sRh1aSdrySVN0oUsML8LrmpFsvngHTA5P52 gd8HTrG3ui0xufgxLRxCENX3s4xZ5Ty/L1s2dMdn4Sw8IIDvctu04bccbt5htj5guTGp ysSFXpbd57yo8hi8Rk0oCn84G7U7bCJt3plKFuaCqRAEfj5b1DnDEDDybmEdrGzawxN5 Y2FP8kmkJfs1sJYAvbbrKYk7ZAOjH1UIduLN0Q8kbVDQxaZZ+52Rxg53PgxWNWJan5JU xyu4BkXSePgNXncrW+Nm9LVh9Bd8V23wBk/MgtaJj0fhjSHzzg4lNMsg9/zN8+95Utc0 dPIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749039568; x=1749644368; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7va4B4zo5RMoE8/q1VOrd2uGJHuIadY3crtc+x7HSIs=; b=OBbhN3y82lNF0+T2wksDO5JjF4vUkhx9c400FPfZ9tJ1SHdMfv7boXJ4S7UZQ3ECtf nnb/75L50+QdfMGFcdlxg3HkRlV144eVv/ey2YEx7BbaE99PbbQ5ztXbYuSA9wv7khV9 EAtpeLHTc5bHlZR61iRM+pk93KqjCuvvrA1nX0lI/aEepT/ABa+FbyLY6KnAFjWzjXqN 2XU1PFKGVQ3RZw+TLLbR67o7kKhKGhQEMCXC2iicfD7SNTBeKg/xtz4pXhCVvZ52rIUX YKKx+2t/S71OveuY9zFftfsQQg67Ef1bbqYCJNCaYMVRpCbnQ7FOwlQjccgiDWgUbaXt uLiw== X-Forwarded-Encrypted: i=1; AJvYcCVRTpw6lwzDEilF3AXtP5y5qtRg+PoUzxnLNdz+K+Wk7WPdnivZsD4Ldi8DiyXATNbARxCDvV1ITg==@kvack.org X-Gm-Message-State: AOJu0Yzw+6Uw2XPORvha0L1vAauisHU3RaK5ppvruwh4k1FNJKYLF+6l Xx2nXhjSWIVM3/BZoJbgjmDp7dQjpy+bDNj7mMoqPR8yoNVTFRuoFspk03RhC4Uh3G8= X-Gm-Gg: ASbGncuhilloqHEQfiwggLYcbGzfUhNqag29gO2iGPpqUpwQkapWenULPxtBJ1/7oyE 1BsgPqrrlcfCoLp2Y5WRlUYDwgamTEUaAJNauV3Gx7nUm4KXEaKnjpWlmyM8GSKWHV5isLJg8iG j5O0FVnBfBpNBVLIHO+QEqdJ4pcc6TspOkpgLwCaysACeaNWFHreF4/siXQk33u21ESgGDc4MXP vzge5lDmFJggdCma+7ABqDMr2FPvzP/cTzgo10Mw/3mosIEyXIPpQyI5G04mhrPdpU01DNPdKWS LgExEg+XaBaKQSA+KtFT+Bdcf9LXTtePFSfiCYVM2WpmrODD X-Google-Smtp-Source: AGHT+IGVrF4O5T3Kqh+fUs3JsLlwaWKguUlwDSvf4RuehBTzNd19MRzE14XOKWLjuavmnFq2+KnyhA== X-Received: by 2002:a05:600c:6297:b0:442:d9f2:ded8 with SMTP id 5b1f17b1804b1-451f0aa7fb6mr21810695e9.15.1749039568246; Wed, 04 Jun 2025 05:19:28 -0700 (PDT) Received: from localhost ([2a02:8071:6401:180:da11:6260:39d6:12c]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a5215e4c4asm1456495f8f.17.2025.06.04.05.19.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jun 2025 05:19:27 -0700 (PDT) Date: Wed, 4 Jun 2025 08:19:23 -0400 From: Johannes Weiner To: Vlastimil Babka Cc: Matthew Wilcox , Lorenzo Stoakes , Andrew Morton , Shakeel Butt , "Liam R . Howlett" , David Hildenbrand , Jann Horn , Arnd Bergmann , Christian Brauner , SeongJae Park , Usama Arif , Mike Rapoport , Barry Song <21cnbao@gmail.com>, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, Pedro Falcato , tj@cmpxchg.org Subject: Re: [DISCUSSION] proposed mctl() API Message-ID: <20250604121923.GB1431@cmpxchg.org> References: <85778a76-7dc8-4ea8-8827-acb45f74ee05@lucifer.local> <20250529211423.GA1271329@cmpxchg.org> <0aeb6d8b-2abb-43a7-b47d-448f37f8a3bf@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0aeb6d8b-2abb-43a7-b47d-448f37f8a3bf@suse.cz> X-Rspamd-Queue-Id: 29F491C0015 X-Stat-Signature: x3dqcjnmux1zwibsn6cggdpag3dtwwjd X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1749039569-684208 X-HE-Meta: U2FsdGVkX19Bgaz66tLjv9TcimDdOl4N88l3espR41GkogO/8GD+AvOf8aYn7ETGw02d4YmngKteiUNfqPlNd2iiReGWFJQw999mSb8lmVAIWp0Yl4h23WFtkgC5o2kEmnfX2H70GQPAWzSbkHLuOf1BVY29gaMKOHeTOGXmL999CK2yD0FMuoIPFVmjra5pfoDvaQm5t5Idp7OpATqJoGqlSz697sJm39mQOW8w6UPDC7NpY2feiuOXOeQ9PZjpyR1sgfurrah9p0rpiAhM8Iw1xsmN58mZxStdiIEVmmBHa+OtllCZN1xNn9b4h1l4In3eNjmdNWdX2ne4qT4dzVHHh99189kBnsKjBzlqFwq14JyeM9hq0bNQLKGgJEOtXiloAFOWlNKCyCmbd7c12KY26wG72y7N+GYbnBlIKT4incZXWhIM2Yit/jMboeBlqCFn5JHPvBaBtWQf9BulHBtuxxR/rviPSUuMWruXUbxe5gxPr+IhEhDCRU/qIeeKpZn+rnCJLhkEOO8kmJI56NErfO8Pw7/CEkUx7vWTQ6+E4ZW37gPayfI5plQQK1uK91UBcg0p25QytvsSQ7SnRaVkj3mbN4BdM0LYOUksoRgozYiI31DJEWRixcSDMTcNR+WKyk8vAOvUaHy51Loib0TDNmACqCRg+uQwY72TyZxpQKshgcMcStpRy1m0DQkZBRF5UC7ny6xKXf1BdtfRIMffrD68kJtSWRbXKyvI+4ilI9QNsfChXFRzwLvlNXpCNlmG4exBq64ZKQI9r+xf1LN/jRnz0GChjyMWJzsTSfNOU2F3MFRnBW/Fcz4H7xVoXtwiZfo5aAnYfBTuJONsOUTrjddQJSPPruowwD41CGtx/lcsrU4g7MgcSvDZ3gZOMaIgrDSRg5nAyJEgG1BrEAxp3YHlLHQqLpSg3DRYjZR+r+w+3mUcBd/Jvj3LYCFG6hRBH5TNsj1qzfzoKKD 1tvPmmg3 zfcTrEtPyVOHZ1QkWA/e3Zn6Vv17SW8UP/JjPnGU70Hu9nV8CR8Akd3ZHWSeO6t47A2V989EI/EhpuEPMdfTR2SDtwVWDYqdj20GtqI1nTJFOn1bKnccq1WifOD/F3HS7ChrbOwjiZqef2bTZJAOI2dPxROFK6S0PpQNhZ/7PcUSF4ZqnZmw21TI+GYJ2PodBAQGOnZrPutGQWKumhq01WWe32szmp1a3tL8qLOCOOCb55w7BzbjRLGoMxPVgDS0HpdOWJ6rzKf9ix4BVLTVZrKUGrSDfDgc7YzQIpJfftnXuoA9Mi22IehTXyV8uTBrycnStYuvD/okMix299yUQQNOBuEaRyuaMqnprihWHPH+qJM5blv8TZHvZPu4Z2WFSs3yyGP6HpRi0BjUM40fkffqZoPqYCJDa24nT2QFitibADpObzuUYQLivr8dKpwEki4UiR82ibwZCFA2BnA4nL6olXw== 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 Fri, May 30, 2025 at 12:31:35PM +0200, Vlastimil Babka wrote: > On 5/29/25 23:14, Johannes Weiner wrote: > > On Thu, May 29, 2025 at 04:28:46PM +0100, Matthew Wilcox wrote: > >> Barry's problem is that we're all nervous about possibly regressing > >> performance on some unknown workloads. Just try Barry's proposal, see > >> if anyone actually compains or if we're just afraid of our own shadows. > > > > I actually explained why I think this is a terrible idea. But okay, I > > tried the patch anyway. > > > > This is 'git log' on a hot kernel repo after a large IO stream: > > > > VANILLA BARRY > > Real time 49.93 ( +0.00%) 60.36 ( +20.48%) > > User time 32.10 ( +0.00%) 32.09 ( -0.04%) > > System time 14.41 ( +0.00%) 14.64 ( +1.50%) > > pgmajfault 9227.00 ( +0.00%) 18390.00 ( +99.30%) > > workingset_refault_file 184.00 ( +0.00%) 236899.00 (+127954.05%) > > > > Clearly we can't generally ignore page cache hits just because the > > mmaps() are intermittent. > > > > The whole point is to cache across processes and their various > > apertures into a common, long-lived filesystem space. > > > > Barry knows something about the relationship between certain processes > > and certain files that he could exploit with MADV_COLD-on-exit > > semantics. But that's not something the kernel can safely assume. Not > > without defeating the page cache for an entire class of file accesses. > > I've just read the previous threads about Barry's proposal and if doing this > always isn't feasible, I'm wondering if memcg would be a better interface to > opt-in for this kind of behavior than both prctl or mctl. I think at least > conceptually it fits what memcg is doing? The question is if the > implementation would be feasible, and if android puts apps in separate memcgs... CCing Tejun. Cgroups has been trying to resist flag settings like these. The cgroup tree is a nested hierarchical structure designed for dividing up system resources. But flag properties don't have natural inheritance rules. What does it mean if the parent group says one thing and the child says another? Which one has precedence? Hence the proposal to make it a per-process property that propagates through fork() and exec(). This also enables the container usecase (by setting the flag in the container launching process), without there being any confusion what the *effective* setting for any given process in the system is.