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 0615DC4332F for ; Thu, 9 Nov 2023 00:25:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D42B8D00CC; Wed, 8 Nov 2023 19:25:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 882D68D0073; Wed, 8 Nov 2023 19:25:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6FBF38D00CC; Wed, 8 Nov 2023 19:25:37 -0500 (EST) 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 5AFB78D0073 for ; Wed, 8 Nov 2023 19:25:37 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 323C11CB77A for ; Thu, 9 Nov 2023 00:25:37 +0000 (UTC) X-FDA: 81436522314.22.8150652 Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by imf30.hostedemail.com (Postfix) with ESMTP id 5507C8001E for ; Thu, 9 Nov 2023 00:25:35 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Srd3o3d3; spf=pass (imf30.hostedemail.com: domain of gourry.memverge@gmail.com designates 209.85.214.194 as permitted sender) smtp.mailfrom=gourry.memverge@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699489535; a=rsa-sha256; cv=none; b=pq1Q23nqTMv8OA45GIDhxhRquKJjWQVugHXMrmVEqn6sSR5hkS91YsqmU3+2k0/P/SMCnq 29iq0gLmpTP2M0u1c5O8ybgM+bGc/4372M4+fr2HNYWpXG+gU3oU1WKUKSfzhoJS3eKy6x WbF6PVKibVK12iqF7+RMJMkrJC9c9G4= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Srd3o3d3; spf=pass (imf30.hostedemail.com: domain of gourry.memverge@gmail.com designates 209.85.214.194 as permitted sender) smtp.mailfrom=gourry.memverge@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699489535; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=qq98/p8Vl+k47pk7yX+yywphXxlOOyU6K07/EFvzpyI=; b=HwwXA/cnUyhPbazI2W03bMePPUs19D3TgTp7ls4teQL1J/Lku6odF/xM966BNV/IB76yQh 8b+TTRGxJoqVFgfcuAaTBVVDy6FGDMOjGuVx+6m8QPrUPVpiVoohIMx5GbZ2s5Dgr/L1+J vB/DcMVfPBwVMpB/qVV8lDoI1yFMbR4= Received: by mail-pl1-f194.google.com with SMTP id d9443c01a7336-1cc5b7057d5so2158595ad.2 for ; Wed, 08 Nov 2023 16:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699489534; x=1700094334; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qq98/p8Vl+k47pk7yX+yywphXxlOOyU6K07/EFvzpyI=; b=Srd3o3d3Djx7gIoObYAEXhFdXV8HE+Iw8xX+eUryer2ZltNO1XpN0NLrgUmg/G3rPf lCWwshE+/vhT3ZSna6bsQCTun6FAhkTRbSklKsH8wO+YZCSsEvYZZdXFrYMm10s2xY/a mMOcS5xrg0z4l6QqCJZryF3nwjhdk/a2iMWSZhRxOuB/Xh5LezmYm5aWAVnOJXsgiPw2 R5DvGGyhdFxDtXcg9JL/bXyDfsVYdpAidAbrIhZX+W2KxYVulcZp2hZ4FYVCVqMVL66b el8CLAfQ9WBzKZE6qSk1hNEHWDW3AZTDMOuLfxL4PQJiwxyM8bQaPgO0J0ribFZ0+Biq RVfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699489534; x=1700094334; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qq98/p8Vl+k47pk7yX+yywphXxlOOyU6K07/EFvzpyI=; b=lWRuZKxgZEJVHaox6QOjX4ebxY9NcwinW32DQo0x5vI3fk6+b5lDdC3GXccx0qPfyD RAeYh4CAyiKAU6Eq77oPw89EAJnA6P4grWNxqBWyCpXlaEilVEC5C2xhna+Sv1XHtSp6 JFob1REumKW+wKKJgJt3YR5nMISFkbiUTnBlNldBZR92ovAWfMO/zreHuPbXgiL4LMhX hB0xLe70U81pEjcQ9Iq29Vh5hufB0BX2ZW1yQdJUxUDOAXnQ4ght+4Rd76t9ibB3Xixa gMcVIaPCOzdoTPUQShdpA8CzLfhyHAFuNewSMNMKbpeMHGhm1CfmgC8PS535/+v1fO7k dxKg== X-Gm-Message-State: AOJu0YxITOumIZ028445Qb27YPYR4qYKLZ982cbbRHAYGjqWC2PURb/7 X7mlQLnlQx5WYsuN9HAyzQ== X-Google-Smtp-Source: AGHT+IG33n4FpYvnXNhTgbwMQRccJmFurDlWpQj1aDFYjJh4yE47tryqcvBNYvztqjxwpVEYDqJQug== X-Received: by 2002:a17:902:d58c:b0:1cc:50f6:7fc1 with SMTP id k12-20020a170902d58c00b001cc50f67fc1mr4371967plh.56.1699489534224; Wed, 08 Nov 2023 16:25:34 -0800 (PST) Received: from fedora.mshome.net (pool-173-79-56-208.washdc.fios.verizon.net. [173.79.56.208]) by smtp.gmail.com with ESMTPSA id b10-20020a170902a9ca00b001bc21222e34sm2219073plr.285.2023.11.08.16.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 16:25:33 -0800 (PST) From: Gregory Price X-Google-Original-From: Gregory Price To: linux-kernel@vger.kernel.org Cc: linux-cxl@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, ying.huang@intel.com, akpm@linux-foundation.org, mhocko@kernel.org, tj@kernel.org, lizefan.x@bytedance.com, hannes@cmpxchg.org, corbet@lwn.net, roman.gushchin@linux.dev, shakeelb@google.com, muchun.song@linux.dev, Gregory Price Subject: [RFC PATCH v4 3/3] Documentation: sysfs entries for cgroup.memory.interleave_weights Date: Wed, 8 Nov 2023 19:25:17 -0500 Message-Id: <20231109002517.106829-4-gregory.price@memverge.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231109002517.106829-1-gregory.price@memverge.com> References: <20231109002517.106829-1-gregory.price@memverge.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 5507C8001E X-Stat-Signature: ok3cjcnyw7kwxhxbcjw68jf9qzdmemzk X-Rspam-User: X-HE-Tag: 1699489535-141239 X-HE-Meta: U2FsdGVkX1+eIMSuk7odpEu7lmfuMHaZldx1tC5HZxnFBpjs6inzhTbOwax222fs0hKhk3yRagj3ZnlT6ig9TEon45071LZ33let4hC9wSSTZdxjw4eFpZ/dgu/KJ94riaA9Y1mLwoBY6/6gIeMlLDXs5xqEeMnjBbAkLo2KPgsv9MBMIfBGF0fzfFtK/oh2do6v+8IuIFwFs3IJgjtRI9U48xawGkrRo4g4aHbsDy+Tdwj4Q34/z7x/aOfCdYS7yZxAkqm2BkNbk1kbRJdJhOS8AkgYC3vzTG93u5pqXA4c6Kgy4ntrHYxzM/mn2FMZdabgbqqPCSgom3i1aPPTuudq9KMCjtydiwkx9k5pvJvzn6Oc8xthlEa4csfkJYd6z7dJtwrILGpNBwvzh/A96iqMjzPUiSIn4oWm/lqzBQKrS3CNm3iEgfVYU9nWBHXLcipXcZUUJ1bCdxjGpsdlhXuvexXxgcJ3MUJaVn4coadLHxHYPuSE75xg/FJuqiFzik0mNe7IGnx0bDRfOdGIyqIwrCx9cSLl6AbWjm6lkGgdRhEWHjNvkXSeOwwGKLI1iwQzh3hcXfQQFbNVi2lZAlA64l3E1e50p7oJJTmvttHdgDWzQ9l+pZ2bhnCsldANR7E6+uCyGV7ceI66tBZ+hQeprsHvXLynLt2TYtXCSzZRVB4M04bxLmQlHrqS7nsB6jIMkcjMr8AVtTJLqLf0HH50Iy/w2OKCzxj71/R08Q5oT5uXRtTnK1IPDUg7VyPTL9WcASye0bDhrYyNbk/rSD+PBS45nNyYIsC6rZ4noeQgF/nC1352yCH7begYiGBrZJebNtAW05xNNvjegbIKATLFzJwMG5FPB0O1cmFJpTgxstXdUEh+lKSMW6eODQbsUF/3tZ4y/PapM7ICn0Xp7/8YnX5drAFSqLjKiatUw4dRfc5Tifyn45tkFZlGHg14KbQAcrBCVVk7smKmb9a 8NacMHq3 C3QtRS4gzVlFMzk/gPIikGEG184u9Vw73xqUrwfiqxjBvPABZA8PmMNowd+scT7uT89gKGJdKMITTix60Suw/opTz8znQujy2F1mIIDIhN51CJ5kNwDuIQLlsp2pA862Q/+OHxrC/6yleNtbu1OaooAykONjyRsBTv19qYoMTcz4/1RHm4f5A6A1ybaDmv7d35jPYS88gPOqD1nQBCeVtViH3oLrgOicoYiEmHXsZkTyYZHWc1X1qFosIAjERFZ3AYenS6ZXBvyeMb1Jdc2t/oe2qcCutTRRhvcwYTDLOci+HLCIkXUhfhWuFupGldM2A7YXK59Mr5b69wavuj/UVcKwzhYPaCiEVka28plkwNovH+cWrqsFJmVJC46kg9s0EdskRtW6QJMexr0rZsGoPBW4BQqErweSYRJfCRg6gJFXW14oy2m9Fh3gp5lhKVqJDWyYpM7NAnjkK+QeJ03i7nV+JtzereOt0rYdaLwvy5LevogK0okepu5aMzPwvfCo610MmLu28hbGXsyE= 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: cgroup.memory.interleave_weights is an array of numa node weights to be used for interleaving when mempolicy utilizes MPOL_F_IL_WEIGHTING. By default, weights are set to 1, and are only displayed for possible numa nodes (ones which are or may become online). Node weights are set individually, and by default are inherited from the parent cgroup. Inherited weights may be overridden, and overridden weights may be reverted to inherit from the parent. Signed-off-by: Gregory Price --- Documentation/admin-guide/cgroup-v2.rst | 45 +++++++++++++++++++ .../admin-guide/mm/numa_memory_policy.rst | 11 +++++ 2 files changed, 56 insertions(+) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index b26b5274eaaf..273dbd01a7ec 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1640,6 +1640,51 @@ PAGE_SIZE multiple when read back. Shows pressure stall information for memory. See :ref:`Documentation/accounting/psi.rst ` for details. + memory.interleave_weights + An array of weights to be used for the interleave mempolicy. + + By default, weights are set to 1, and are only displayed for + possible numa nodes (ones which are or may become online). + + Example:: + + cat memory.interleave_weights + 0:1,1:1 + + Here both nodes 0 and 1 are set to weight 1. Node weights are + set individually. + + Example:: + + echo "0:3" > memory.interleave_weights + echo "1:1" > memory.interleave_weights + + Here we set a 3:1 ratio for nodes 0 and 1. Mempolicy will + allocate 3 pages on node 0 before allocating 1 page on node 1. + + Child cgroups inherit weights from their parent and may override + them or revert back to inheriting the parent weights by writing + -1:0 to memory.interleave_weights. + + Example:: + + echo "0:3" > parent/memory.interleave_weights + echo "1:1" > parent/memory.interleave_weights + + # Child cgroup inherits these weights + cat parent/child/memory.interleave_weights + 0:3,1:1 + + # Override the weights + echo "0:5" > parent/child/memory.interleave_weights + echo "1:2" > parent/child/memory.interleave_weights + cat parent/child/memory.interleave_weights + 0:5,1:2 + + # Revert the child back to inheriting the parent weights + echo "-1:0" > parent/child/memory.interleave_weights + cat parent/child/memory.interleave_weights + 0:3,1:1 Usage Guidelines ~~~~~~~~~~~~~~~~ diff --git a/Documentation/admin-guide/mm/numa_memory_policy.rst b/Documentation/admin-guide/mm/numa_memory_policy.rst index eca38fa81e0f..7c82e38dbd2b 100644 --- a/Documentation/admin-guide/mm/numa_memory_policy.rst +++ b/Documentation/admin-guide/mm/numa_memory_policy.rst @@ -243,6 +243,17 @@ MPOL_INTERLEAVED address range or file. During system boot up, the temporary interleaved system default policy works in this mode. + The default interleave behavior is round-robin, however cgroups + implement an interleave_weights feature which can be used to + change the interleave distribution. When weights are used, + the behavior above remains the same, but placement adheres to + weights such that multiple allocations will respected the set + weights. For example, if the weights for nodes 0 and 1 are + 3 and 1 respectively (0:3,1:1), then 3 pages will be allocated + on node 0 for every 1 page allocated on node 1. + + For more details, see `Documentation/admin-guide/cgroup-v2.rst` + MPOL_PREFERRED_MANY This mode specifies that the allocation should be preferably satisfied from the nodemask specified in the policy. If there is -- 2.39.1