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 297A2C02198 for ; Wed, 12 Feb 2025 15:19:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 98E7C6B0082; Wed, 12 Feb 2025 10:18:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 93E0B6B0083; Wed, 12 Feb 2025 10:18:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7B7A06B0085; Wed, 12 Feb 2025 10:18:59 -0500 (EST) 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 5BF516B0082 for ; Wed, 12 Feb 2025 10:18:59 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0013A1406EF for ; Wed, 12 Feb 2025 15:18:58 +0000 (UTC) X-FDA: 83111650398.28.0B60F96 Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com [209.85.219.174]) by imf25.hostedemail.com (Postfix) with ESMTP id 09C3EA0007 for ; Wed, 12 Feb 2025 15:18:56 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UDVfUrMD; spf=pass (imf25.hostedemail.com: domain of joshua.hahnjy@gmail.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=joshua.hahnjy@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739373537; a=rsa-sha256; cv=none; b=c+rOYUVaAMPyLmFjLIFCD3oB0kBII6XBOjw2MJQNZH/+Wcsna3pnLg7y4fh4Luvv6XMZHd 4RExrLoQAq+lguOC54Mg0MFsgtK0XrISrhRhXX2oH8KmcpB2ulNKSblIXKsJo5Wa4OHkjM rQIoXTqmbnaX1xiyDxHuctSeLoXpSIc= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UDVfUrMD; spf=pass (imf25.hostedemail.com: domain of joshua.hahnjy@gmail.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=joshua.hahnjy@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=1739373537; 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=Zp8cQDra8OkL311R2+pzj/CpnjokURMQ7dsZUkJXkWc=; b=zRH8tw3NcMS3gkRVIWNWG0OxEGawcDsrGMdhOrBXx095WVQbWE/Q3r+YNzWehdGe5r+Mpd NmCYaloJBMCs8Du/RY0lpSO2JbPUJJCy7lD7BuCSnzELqMacNP89JMEV1ZNj3+Fgj9VMvc ge+FOHf+xCDCcRYjqBomyifyCMqNf4s= Received: by mail-yb1-f174.google.com with SMTP id 3f1490d57ef6-e4419a47887so5360218276.0 for ; Wed, 12 Feb 2025 07:18:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739373536; x=1739978336; 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=Zp8cQDra8OkL311R2+pzj/CpnjokURMQ7dsZUkJXkWc=; b=UDVfUrMDbZMeZ+AM7dTZZt1e/Jn6CeJjPB1nlW20rvyVDO1yQJE8fqfjxGQHqinVll Ceuk+OPO3H74ZzmR94K5HPKQkh7dAVeJYmwJ7P1HthVKF+XSqlzIIffEyCt9LafATa3Z HrorjxORxD0nxFxEpuWo2EVx6Ny6Yjw1Dwsv/pBtqhNHoLPkOMm0TZHK27foSNlTYqZ6 91cYw1VvSIoeMN5jQiddREYqbeiYsFV9dZF/UqwO5WmKnavkyguCTbpLYyNvZLZJIS9g ZmFSTDYZaK+ti0IY01Kj2bLKYefIaj29rqIke10saAlGuCSD4t3oJkhqcEwSl+dpLaQr zhiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739373536; x=1739978336; 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=Zp8cQDra8OkL311R2+pzj/CpnjokURMQ7dsZUkJXkWc=; b=nojHIZFh6JPX+w5d6KmCJbmPScWHen/KQF27uluuMVa4qImc7xWAlRbB/4i5EKNV72 yO2qGn+FOpeNDbQpVnU/1IoNo++srjSVvUa29wrIzQYh7qvoDCopW9O3FAw9TVA8XMGy 7EDtbunlXoq9yX/CZiB2SEY7nb2o0irUJ/dbJ3Q+RKNBuIbVyygAn5z0SL4xp3OPJ+GR a9OKdmm8UEAZEWz1vwBTZ78b1VgfBVPNYdT/IoVlnLlA+v2D/EuhaBp3WiLV0PIia8Oa ouI+zO/If2G6NaTKXfUikp58UT7FPuX7MdhZeVj4Bl8jJ78Kza+9BsPk46LYpwkxgr/e FHQw== X-Forwarded-Encrypted: i=1; AJvYcCXtcWnpI8dL6ZfJ+2hgbYAuE/dbBdIIYiREPyUJAcoAOZYgriPwp+KDPRyG8rWeAkGUB6bN/xsNYw==@kvack.org X-Gm-Message-State: AOJu0Yxa3uP+GAkJNYAkxKdK0pMGOCJMrtVC7KMnfKqTzL3NX1Tswd7n BUdjt5qrFE+B2njUfePyDdtQx4/atDEwGeGqhV2C7OfNcFBUTgzd X-Gm-Gg: ASbGncs93MNpnuEvSAiZ0A4J3qVTPJDdsRHZJSSN0YwwHIqsHUWYwVquylt/EiB4PeN SUW6JHS2/eSloCc6G2CLWRit+6WG5gEBpBoueQ/silYWKTm3nsqwzmUp9Jy4jVVSRqFJvB7Bz5+ CJs9ys1nrADp+Gw8lf2jhy5qSrW4C6dxT7vKEZehluSxM0G8/prTahF1IFOd/KBRGlzeOBBzd0c gqh9lsqITcDM+fpJlgc/f0f4CZDXkS6DJQ5cTVdPqCuY2Wm6sV6Ti+WuZvKEXwHhgaklzc4SrjU fTL6xLox8zUg5Q== X-Google-Smtp-Source: AGHT+IGMwadjZHoGhSUXMKY5vAmet1Qy5D8eOpNPMmyRHPyHJVzSGMHqfW+0IQffQ9kqcx9zQKFODQ== X-Received: by 2002:a05:6902:1607:b0:e5a:e604:78df with SMTP id 3f1490d57ef6-e5d9f0faae2mr3681894276.17.1739373535939; Wed, 12 Feb 2025 07:18:55 -0800 (PST) Received: from localhost ([2a03:2880:25ff:7::]) by smtp.gmail.com with ESMTPSA id 3f1490d57ef6-e5da4522daesm271670276.0.2025.02.12.07.18.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Feb 2025 07:18:55 -0800 (PST) From: Joshua Hahn To: Oscar Salvador Cc: gourry@gourry.net, hyeonggon.yoo@sk.com, ying.huang@linux.alibaba.com, honggyu.kim@sk.com, akpm@linux-foundation.org, rafael@kernel.org, lenb@kernel.org, gregkh@linuxfoundation.org, rakie.kim@sk.com, dan.j.williams@intel.com, Jonathan.Cameron@huawei.com, dave.jiang@intel.com, horen.chuang@linux.dev, hannes@cmpxchg.org, linux-kernel@vger.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org, kernel-team@meta.com Subject: Re: [PATCH v5] mm/mempolicy: Weighted Interleave Auto-tuning Date: Wed, 12 Feb 2025 07:18:33 -0800 Message-ID: <20250212151852.526233-1-joshua.hahnjy@gmail.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 09C3EA0007 X-Stat-Signature: z1p9hopmpaaancjdydjghgz7izrncteo X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1739373536-41799 X-HE-Meta: U2FsdGVkX1+9ZZzgEb5dKgabQm9IJd90MKx3c7J013nOzrReYHvX6Ws7Ejjd5yjuQECMUhopwC0fFdS4VLkAl0LKSSfGoNQ54TwOnuu76KKRDS6fyEjg+PltDYDEv426zSVKf/XQVN9MD0pzHbiUvQNn8s8+LeDsnnON5R4fAqqQMv7ED5o2ydfzLwd2Sp8tgkRl+SRR2WwwdIiAfPKLwpo2WYXxBT8vSDmcjJrkkuBSyhqWO3T5epUNmPrC9fUQ3mSsG/4tcEA5Eds4QmW/Qop+Jw0xG1o4BAmnXs5VVnrfvSGWhGjqHzyMwcKwJtv2yNqeZk16tPlERYzRo0WoihWS4YToCkhPZsdFMFNIrnws96sEvDMLjmTKa1EbinIfLtc29AP5lMHqpHzNzme6TZnBhiWwg6KmVSky/YvYlnsuwOplwRAScBOiusUIxAVqoo9s9/EO0Uc6FiXy3TlpKcNh/9BeAxaCdxd+GaiWDy1hFmKrMEZaFO2JE8I29kIIpoCCuGWT6aF6J99EVG1Yxe4UVKKfX/QH9jh64e4hGyyOO8lRS94gg5ySno5iV70wycWPAQSq0NtzYeGVb56BCUa+gt3QttDjBzE3nduzoIesWHfaHWeho8v5v4LgUAH/k/bBHVEdUdgQX9BI0ZXSA6c+lzokhkkXUf1l0W3D2WvQYzMoH4GzmtS/33D+3/+SiKFiWiw97GLcuZg1FK68u/5cXARF9GPMERuz9RZL2RTy8G4gu/8DCTzPTfe8kDHiRMHrh2Ileqbkn5Sh8ZsZVnEvUIo3WXiit0TVsrCIMmhOJcJ3gznwE2KBhqcDOkt9tZsVysRNqtB4vXnoPUGtU30kDp/iUhKbMJGFZF5K73TlkXZrCiTBbbuB+LuoBfYYbYH6LHD/+K7wNRh/h1jiPoTQjO6gt2t+lZfQNtSgnth+l0vjo+G62crKiweNXLN3biQhsiRSQlqWqTwWZxK UdrXSaz9 yU3iiZo8gOmxuw5qvLSOuAjWne6UlkoYNeVednWDxWNBR57bRr/BVuLt/Rz5oqdDuvr1xzW9n64n8EU7ultbHkc+UHjNrXPLUGPF/o1XT2XgbgS38gX38LxeGYM7a7I3555MAL7JKUx0arNlufnHjLbXiQJe0Q/fJcdSq8dVAo6NHP9zFtN+8sDudi0S0R5Leu91ACSj3xeWeRF3QEtIg8uOM9AH6a9Ys/43IVOZK/2+0yQmuNaL6IbJB/H/uC19eDeTpiK0ysbueW+43IOjZNyyFSiYk097fb0W+yuhERSb6ZItJnZ7nCPiqoHhWTANWg+vYKvk1QpMTV1uomlrrULgLsXefrNJjo7cQWzHAz6AutZJ3/P6yl2+mUumii+81sTruuTNxMZQn2DgO0qSZevlNdtu+K1dRFFXWZysh2UMMkTBL/R5GRegHMbQtBziTq2LBP2xXmbVP76BbVfnkJutCpGMt8y+HJmq9 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000751, 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 Sat, 8 Feb 2025 07:51:38 +0100 Oscar Salvador wrote: > On Fri, Feb 07, 2025 at 12:13:35PM -0800, Joshua Hahn wrote: [...snip...] > Hi Joshua > > > diff --git a/drivers/base/node.c b/drivers/base/node.c > > index 0ea653fa3433..16e7a5a8ebe7 100644 > > --- a/drivers/base/node.c > > +++ b/drivers/base/node.c > > @@ -7,6 +7,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -214,6 +215,12 @@ void node_set_perf_attrs(unsigned int nid, struct access_coordinate *coord, > > break; > > } > > } > > + > > + /* When setting CPU access coordinates, update mempolicy */ > > + if (access == ACCESS_COORDINATE_CPU) { > > + if (mempolicy_set_node_perf(nid, coord)) > > + pr_info("failed to set node%d mempolicy attrs\n", nid); > > Not a big deal but I think you want to make that consistent with the error > pr_info? that is: "failed to set mempolicy attrs for node %d". Hi Oscar, thank you for reviewing my patch! That sounds good to me. Then that line can be replaced with pr_info("failed to set mempolicy attrs for node %d\n", nid); > Also, I guess we cannot reach here with a memoryless node, right? I think that they should not reach this line, but since memoryless nodes do not have any memory bandwidth / latency information, it should be fine. With that said, I think a check like the following would make this more explicit and possibly guard against any unexpected calls to mempolicy_set_node_perf: - if (access == ACCESS_COORDINATE_CPU) { + if (access == ACCESS_COORDINATE_CPU && !node_state(nid, N_MEMORY)) { > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > > index 04f35659717a..51edd3663667 100644 > > --- a/mm/mempolicy.c > > +++ b/mm/mempolicy.c > > @@ -109,6 +109,7 @@ > > #include > > #include > > #include > > +#include > > > > #include > > #include > > @@ -138,16 +139,18 @@ static struct mempolicy default_policy = { > > > > static struct mempolicy preferred_node_policy[MAX_NUMNODES]; > > > > +static uint64_t *node_bw_table; > > + > > /* > > - * iw_table is the sysfs-set interleave weight table, a value of 0 denotes > > - * system-default value should be used. A NULL iw_table also denotes that > > - * system-default values should be used. Until the system-default table > > - * is implemented, the system-default is always 1. > > - * > > + * iw_table is the interleave weight table. > > + * If bandwidth data is available and the user is in auto mode, the table > > + * is populated with default values in [1,255]. > > * iw_table is RCU protected > > */ > > static u8 __rcu *iw_table; > > static DEFINE_MUTEX(iw_table_lock); > > +static const int weightiness = 32; > > You explain why you chose this value in the changelog, but I would either > drop a comment, probably in reduce_interleave_weights() elaborating a > little bit, otherwise someone who stumbles upon that when reading that > code will have to go through the changelog. I also think this feedback makes a lot of sense. Maybe something like: /* * 32 is selected as a constant that balances the two goals of: * (1) Keeping weight magnitude low, as to prevent too many consecutive * pages from being allocated from the same node before other nodes * get a chance * (2) Minimizing the error between bandwidth ratios and weight ratios */ Andrew -- I will send over a new v6 for this patch, if that is alright with you. I will also probably wait a few days before sending it out, in case there are other changes that folks would like to see. Please let me know if this works for you / if there is something ele I can do to make this process smoother. Thank you again! Have a nice day! Joshua > > -- > Oscar Salvador > SUSE Labs