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 CBD67C021A0 for ; Mon, 17 Feb 2025 07:35:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3263A280039; Mon, 17 Feb 2025 02:35:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2D601280037; Mon, 17 Feb 2025 02:35:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 19E58280039; Mon, 17 Feb 2025 02:35:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id F1DC2280037 for ; Mon, 17 Feb 2025 02:35:27 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 8CDB71A1BBA for ; Mon, 17 Feb 2025 07:35:27 +0000 (UTC) X-FDA: 83128626294.07.8F534DB Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf03.hostedemail.com (Postfix) with ESMTP id C6A932000C for ; Mon, 17 Feb 2025 07:35:25 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=uU2VYbNm; spf=pass (imf03.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.218.47 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739777725; 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: references:dkim-signature; bh=dKz4w2wKU6HEfnRd4Fajwg56YJE0+qIQmc1XL+HtJdw=; b=Y9ojIJPN3vXjyWa9ec+kNI8CPUNY5JBNCXse49jiDCRWl/zWPhwUf6a1kwX8rsEDs8SFMZ 8idJDRWgtbMtdry72UGjI2uQIXPXikNKUquyjT7jJ3p3VWhEVm6ZGDVVQNVsNyObuJzzav 8BYWYarF8O9WAqkufQmIOJzTT4nFHEc= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=uU2VYbNm; spf=pass (imf03.hostedemail.com: domain of dan.carpenter@linaro.org designates 209.85.218.47 as permitted sender) smtp.mailfrom=dan.carpenter@linaro.org; dmarc=pass (policy=none) header.from=linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739777725; a=rsa-sha256; cv=none; b=NOqvnNBXq6Ajxl+gnhdN7mpA/LiujAjzGXMJ96FFe02hZaImc2VilMxPmM0tp9j+gmpCaV 3FLBrcQ7d6T7FJugHc6qZ3dS5HY6iiRyAfCKyxt8UuuFIPM5bE0XKvGDPOXnZbVv79G6LD /uOWGttp4cXMVX/7KMX4qr3zX+VnwJA= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-abb86beea8cso220010466b.1 for ; Sun, 16 Feb 2025 23:35:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1739777724; x=1740382524; darn=kvack.org; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=dKz4w2wKU6HEfnRd4Fajwg56YJE0+qIQmc1XL+HtJdw=; b=uU2VYbNmBshyfpCjoMxATLKzpLszu9VDnXTGMs6v/SA9BPXdXAgwx/dlLWNlpjeb7n IyuFLINoGaW+hlzqrrUwHsuqR4d/xcLepzGYVLQGM5Rksvyiut4/KTN6SArVXQvzZZBl 7/OmeYSJs9wLjwecbE86r7A/SiibEJBkDKMnscjddQCXFhGfMUVxt1BuF5PDXHXETF+J EaERx2RHi5BssMM0SpOayhDT/FaeVM3s9+dV4I6ZOSQY9wafstT+3bPb4y/7BvjYImvq Syslru1ukfiSS+UGthdaCLk4a+m1xKwiMvmiQ1Em1gMgKy+lspTNxaKfD+VRDGyGiDey 4QYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739777724; x=1740382524; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dKz4w2wKU6HEfnRd4Fajwg56YJE0+qIQmc1XL+HtJdw=; b=AaJgxvwUkAtMGesNys9lHOvH990Y9vijwfVLWaiAPIzJcx7FZhb16yBXIl505/F6cG PHS+9gGck/xvPPBp+jTyh3olyGxnxWpoC1+TlxhtR8XriKpTrc5p08y43j6LRcBNpvgt BlLUWC+6ijQxf15p1SWBTOt20wr/LVrTn7Wi9ujfODWCQ59bh+ZyvGD6MI6DgwIs/UEP EYhrUn+W3AGWE4NlWzORU5qSGMrpsJLRILUqi9Z8G0598zLQbarvyON9AVM6+3Hu+fSN phgQF4nfNF5i7DyRPysYwBXRGydlSDtI5j2qoRgQxUOlY/Nf+kGtLGuZ22FESiQzmNSF Nbzw== X-Gm-Message-State: AOJu0YwHr+jVWzhDB6FGsC/xE7rwgiy2G+hXKsoBu3iuGJJCbYtuxG+/ 2nAqt7ad46t3g0MuXqK3+fzCaZejoBTvciOR/Nze0QLaUiEdYP1z4yDP5NXMwdk= X-Gm-Gg: ASbGncuTl6fT5g3+BG1tqxMXfuo9wigXU2NYvr+4QzRYioXHlTgRgP5dJzDznyAcqrP FC8scr93f2vCfu2EvcgrIeR9AAKCkM85AhLZFnXc4hW9WX6dYrescm2nFdNj0Kaq+x8W5KNqV5S qgWtKnlzVlg4NAARB7x70NqX2RoMkmJ5RdFbawCdKVEOQ9kU3V1Gd1zwKI2712KnjtM6CWZFO6v CgXqbk98mEyakREqwQr5Blx8IiOGpWRZPkhC3dLeR/vtuXwiaxTcmE/2NC5+AvmliLSyhIgHiPW 3dHbWdLGRkND62nToWGL X-Google-Smtp-Source: AGHT+IFhSOLg9ao+oyn3Gv+w1kxQ9nBtWSFeW0M0QKT2/maiOcVev6IvFxH+A2K9D3My5DjW6xOlRA== X-Received: by 2002:a17:907:2da0:b0:ab7:83c2:bdbf with SMTP id a640c23a62f3a-abb710dc6cbmr847259766b.41.1739777724124; Sun, 16 Feb 2025 23:35:24 -0800 (PST) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-abb8a1eba0dsm297529066b.97.2025.02.16.23.35.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Feb 2025 23:35:23 -0800 (PST) Date: Mon, 17 Feb 2025 10:35:20 +0300 From: Dan Carpenter To: Joshua Hahn Cc: linux-mm@kvack.org Subject: [bug report] mm/mempolicy: Weighted Interleave Auto-tuning Message-ID: <547331c1-5332-432b-83f0-911b96a79d72@stanley.mountain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: C6A932000C X-Stat-Signature: iteojcnis7t1xkbcdwcergzhjmpfrgmk X-HE-Tag: 1739777725-716566 X-HE-Meta: U2FsdGVkX18a6cWAHJnN+gy3qya6B5+vTXquBxY29TbUAaw58Sz/D53cPW19lI6X8ghfKKgjGt88kUQfCR2MZnBdDQROkTWvYYOIsY2YH2NWbes0TcPkVlD2rZ6X331RXyk3eje6j25/BVVask3MaSbHdS5m85S0wJYn6SrFDJRqU7kBfTsxR+OqB6yukz/E7WqCwUetUxE5PqcOpz9BmhyDN2rFMks/e2SUb5PTY3CBSST7gFRwyeD1TJDeuk0HdKOsigrT7s9W5tJPd59j8BLFnuSZBbRdMQqSX9pVLCBssMkEw9Y8WtnM1nrE86LRZSGGldT+fZxZQdZEDONnvs81WH+7Cv648NeYNqOPsoRjqxzLUvX1HaE4DnMaHjksPMHpUBxSBujhmXrOi88BmUHwZe1C30cXaCR8nLIkrOUe/DJtnlsOWVIu9+7AGgmVqGow6KgTJHrxMbyfoIVIgKHEYNhbWNZsfTF4whPqcmVsrNg01oqxMJyWrPMqFhJor6/i7F+zVuRmJ6VG6FSjQGvn7TVBroVRI7H3S3jy6WyqbCQ4/8PRd67COpROwsAm/DJA7ODyNeW/aI6o6F/ERFCoJ9Yvu+gv+2hvTpu+ZoHajAmDkBelm1XJbGjg1IPAEKGODnzTJPS4eFrTJ1rsHACp7MJhAk2zGZt4D6ZrjUG6U8JC9MKWGa4gIzJrqR+0C8dojS+joYgewCVKRdTdGsm/PbcXGkfzvUnmlXx2qLG4HoGIYm62tvk7YP4BqVzHZYYOhu5KdwOA7BsQr+6F6p0gytx0Yh2L7pd4tghnhukCSw6jRq0/SBsXJ7gGhKsdJEXs+iK+8CBxltepvTz5lZNYyczAdmesKWn71KGcClsZsUDD6zWf0YRMah6hbL+9nuCi9CDOFwlZkBH6DAQGOgxxuoD/zIYhxRmBYW8vblbcjHdvFdqhX3hbDvq/gPP+IilbNP91YcgZtKUAPQ4 mZ+45rvU LlyeCLpGzCP4VxGxwWCD2fRgzoMKGR4Kt+3kJk3zopatsKI/1rs1oYz5J/hp6F4I27s7dDNLOfztmCJCvMpjR/7UOxnk1wCm0EeWlOYQveFLr2sVpaiaf6WM6RxxtTaT5aVh8BARvXu1K6SIf8VPUaN2wOWsySJc/GZUhWpBF/WiDIoVGSKH+L7k7fS8RpbnA6kcs3jWyK9i2ffPRFPzJSCd60R3U4zsQR4y6TtmdSGOWvoop5J94qGlJz67JXXQzapWuAGk4cLwbFKGTzHd7HF/AbOoloLtOemQ0E1DqS+W15JYUdx5DLOR+Kw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.054025, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hello Joshua Hahn, Commit aab5f6eb05fd ("mm/mempolicy: Weighted Interleave Auto-tuning") from Feb 7, 2025 (linux-next), leads to the following Smatch static checker warning: mm/mempolicy.c:220 mempolicy_set_node_perf() warn: assigned value is less than '1844674407370955161' mm/mempolicy.c 209 int mempolicy_set_node_perf(unsigned int node, struct access_coordinate *coords) 210 { 211 uint64_t *old_bw, *new_bw; 212 uint64_t bw_val; 213 u8 *old_iw, *new_iw; 214 215 /* 216 * Bandwidths above this limit cause rounding errors when reducing 217 * weights. This value is ~16 exabytes, which is unreasonable anyways. I see this comment about exabytes 218 */ 219 bw_val = min(coords->read_bandwidth, coords->write_bandwidth); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ but these values are u32s --> 220 if (bw_val > (U64_MAX / 10)) ^^^^^^^^^^^^ There is no way they're going to be more than U64_MAX / 10. 221 return -EINVAL; 222 223 new_bw = kcalloc(nr_node_ids, sizeof(uint64_t), GFP_KERNEL); 224 if (!new_bw) 225 return -ENOMEM; 226 227 new_iw = kcalloc(nr_node_ids, sizeof(u8), GFP_KERNEL); 228 if (!new_iw) { 229 kfree(new_bw); 230 return -ENOMEM; 231 } 232 233 /* 234 * Update bandwidth info, even in manual mode. That way, when switching 235 * to auto mode in the future, iw_table can be overwritten using 236 * accurate bw data. 237 */ 238 mutex_lock(&iw_table_lock); 239 old_bw = node_bw_table; 240 old_iw = rcu_dereference_protected(iw_table, 241 lockdep_is_held(&iw_table_lock)); 242 243 if (old_bw) 244 memcpy(new_bw, old_bw, nr_node_ids * sizeof(uint64_t)); 245 new_bw[node] = bw_val; 246 node_bw_table = new_bw; 247 248 if (weighted_interleave_auto) { 249 reduce_interleave_weights(new_bw, new_iw); 250 } else if (old_iw) { 251 /* 252 * The first time mempolicy_set_node_perf is called, old_iw 253 * (iw_table) is null. If that is the case, assign a zeroed 254 * table to it. Otherwise, free the newly allocated iw_table. 255 */ 256 mutex_unlock(&iw_table_lock); 257 kfree(new_iw); 258 kfree(old_bw); 259 return 0; 260 } 261 262 rcu_assign_pointer(iw_table, new_iw); 263 mutex_unlock(&iw_table_lock); 264 synchronize_rcu(); 265 kfree(old_iw); 266 kfree(old_bw); 267 return 0; 268 } regards, dan carpenter