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 8AC2AC48BC3 for ; Mon, 19 Feb 2024 14:20:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 021FC6B0072; Mon, 19 Feb 2024 09:20:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EED2D6B007E; Mon, 19 Feb 2024 09:20:22 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D68096B0080; Mon, 19 Feb 2024 09:20:22 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C909F6B0072 for ; Mon, 19 Feb 2024 09:20:22 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 9123E1403CA for ; Mon, 19 Feb 2024 14:20:22 +0000 (UTC) X-FDA: 81808763484.24.1347439 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf10.hostedemail.com (Postfix) with ESMTP id 6D02AC001D for ; Mon, 19 Feb 2024 14:20:19 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b="D3jmGX/h"; dkim=pass header.d=suse.com header.s=susede1 header.b="D3jmGX/h"; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf10.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.131 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708352419; a=rsa-sha256; cv=none; b=ys7+LOMoQWqBPSIOLeQ+M/pom4hGETeUxgqRZJsg5+hJ075W2FEXlSidKWMFu0Y4/Xc9mV yfm5S+eBoK9LmGF6SsgbRcyADICLdu6JXMNOR6qvVJV96cms0FmjuXQQuSZM/fJVtaDwKv ToDj8lkBD4+XPTIRfbIo+pFqPl/HLck= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=suse.com header.s=susede1 header.b="D3jmGX/h"; dkim=pass header.d=suse.com header.s=susede1 header.b="D3jmGX/h"; dmarc=pass (policy=quarantine) header.from=suse.com; spf=pass (imf10.hostedemail.com: domain of mhocko@suse.com designates 195.135.223.131 as permitted sender) smtp.mailfrom=mhocko@suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708352419; 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=aLmOchcdO/OEdRe6+0EHgwuSqAEsd/dBHR41UH1V5cI=; b=mcFZhtrPwfxQsdKJbum7JjkBV/oNlQjBo8UpzyB+Jx8nq6HpWW7XyB6Dr4cKF6S5xFTcUW Sh4pu8uHYu5vYxAePUkfTOd1kJjEx8sEUgzuF0pR2ojqOWez/w8v9QJiKWaPzO3MoBJ+v+ 7rU53bjW4XFU7tWpJ4bbSCGSqz6OSPI= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 933891F804; Mon, 19 Feb 2024 14:20:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1708352417; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=aLmOchcdO/OEdRe6+0EHgwuSqAEsd/dBHR41UH1V5cI=; b=D3jmGX/hc+ks0qDJM03xhBDKglvx0W7G+7BdI9Ud9eRlzRPU7XHzFWP0AMZbOo6/aFMgmr lvhlqqGNv+iCt9UEzRAwp8tQuWUkV6hiGHW+o61DuyLth1BaQ6XynAAgjVIyTHRvhJPDpD crn6pOsI4CEPJ09hNYZ7LagfXljH7Uk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1708352417; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=aLmOchcdO/OEdRe6+0EHgwuSqAEsd/dBHR41UH1V5cI=; b=D3jmGX/hc+ks0qDJM03xhBDKglvx0W7G+7BdI9Ud9eRlzRPU7XHzFWP0AMZbOo6/aFMgmr lvhlqqGNv+iCt9UEzRAwp8tQuWUkV6hiGHW+o61DuyLth1BaQ6XynAAgjVIyTHRvhJPDpD crn6pOsI4CEPJ09hNYZ7LagfXljH7Uk= Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 666E3139D0; Mon, 19 Feb 2024 14:20:17 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id kZ55FqFj02UMXwAAD6G6ig (envelope-from ); Mon, 19 Feb 2024 14:20:17 +0000 Date: Mon, 19 Feb 2024 15:20:08 +0100 From: Michal Hocko To: Donet Tom Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Aneesh Kumar , Huang Ying , Dave Hansen , Mel Gorman , Ben Widawsky , Feng Tang , Andrea Arcangeli , Peter Zijlstra , Ingo Molnar , Rik van Riel , Johannes Weiner , Matthew Wilcox , Mike Kravetz , Vlastimil Babka , Dan Williams , Hugh Dickins , Kefeng Wang , Suren Baghdasaryan Subject: Re: [PATCH 3/3] mm/numa_balancing:Allow migrate on protnone reference with MPOL_PREFERRED_MANY policy Message-ID: References: <9c3f7b743477560d1c5b12b8c111a584a2cc92ee.1708097962.git.donettom@linux.ibm.com> <8d7737208bd24e754dc7a538a3f7f02de84f1f72.1708097962.git.donettom@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8d7737208bd24e754dc7a538a3f7f02de84f1f72.1708097962.git.donettom@linux.ibm.com> X-Spamd-Bar: / X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 6D02AC001D X-Stat-Signature: g98sntp3q3umgicwoomiy5tafy81x9fn X-HE-Tag: 1708352419-49727 X-HE-Meta: U2FsdGVkX1+s6td280HsBIyGq/G3XknU6YfPHDoA/2bso9tSVSEKhUERSJf+8UalDLxeRdlrcDwYNmGihiV/d9FR+iCuwVGR6gWrZL95owBx5Li4Qtu5x4g77B7XpWd19fUfd/i7JKO2tTY7ePykVj+FTo/TfHVIs/JVe0dq2q9jAzqY55pDXd6hgWckYrMpbIHQnU5KOUGa7pil4heAhXgWYAACdfLLoEJ5ov7iNPOJbFL9fNzaBTtakMwRCtLZkkwmAZfwyCoOerrwpcx59vir1VnVAcB+5jLIlSGDNozR95CV99FHtxb/M+e2lDkmT2WZLgvdp6VdILA85NFjJdy/txWX3JUAvLRAtGTb7S1hTyPjX+/D2Hyik2ThjTIaeJp/9L7ry+SAzw6ZHCo8EeLjEuQfWajke6T1AfGRBojin9ST/QTx7kdZrGM2HpTtTLRkPZ/I1sooy4av8YrsuBSq7d39Ch68VeMRz8npVz7Amhj81rSqXzMh6o3EYLX743O6IGDnE8yvUlSr2esTzmRDAF9rRSHnjoGtCKU0HtG4KvbMm6jTsY3mBzlVWdRp3It/3yOpccC47DJD+ebwK2OymCMbOdoTa9186NjZepb0kIfrE1Pl5BIa3QPY4AJ/EezTGvYMvp063H48XXNdHcHwzfw3MUwzD7ylBZlGOdPiCgYASKt0ms/nWFLP0Z/RoAqMcBcLZ/0S0Dm7XEaaKeR9qlCtMDyLmme3wCajGNkHIBGV64PXdWcdAN83vxFrUZhXpY+HcgO5f+O+u+h6xs9RNMRwyUbgsS/ioA8kNNNVcIFiAJg+F9l2ekbmvJF98vFDKpdvBIn3LzoUq+XnzuAgnrjGxzWKc7kB5DABl7nqw7CN7/XxA0tQHJqCHl8jOOBFCoEENyNs1Fm/JG0hpbQWaxFgSiOQBH7gkNHDQCnIy19Tn+U4kRb6FPekwwfGfXqbflrLrplr7GCBmCb S+LHiGOd 7l28Rl37hPCkgXLzRVbmuCkEgqlZd4GnQxdg7hZyJs/Y9sKdH/JUO7I5eLDOQIcJMKxfSlYn0Zrqrrd+UOUZOOEC7DHhneTLRrMlm7ILFFIHk//M5agQoU3KNq2zwE69kKR+fBL7jsMJXwdz3/btKHzniehO1W1JFpNiG/Ow+1t/qN2WcHx9RhIrcaB1TUYGFh6WX1lWQiG31tVyHE7T1iRAO0N6ptKvzEWl6U9cqOaY5CfLSjoFzlhlZxmPqmaejo6WS8Wt98NuDwLg= 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 Sat 17-02-24 01:31:35, Donet Tom wrote: [...] > +static inline bool mpol_preferred_should_numa_migrate(int exec_node, int folio_node, > + struct mempolicy *pol) > +{ > + /* if the executing node is in the policy node mask, migrate */ > + if (node_isset(exec_node, pol->nodes)) > + return true; > + > + /* If the folio node is in policy node mask, don't migrate */ > + if (node_isset(folio_node, pol->nodes)) > + return false; > + /* > + * both the folio node and executing node are outside the policy nodemask, > + * migrate as normal numa fault migration. > + */ > + return true; > +} I have looked at this again and only now noticed that this doesn't really work as one would expected. case MPOL_PREFERRED_MANY: /* * use current page if in policy nodemask, * else select nearest allowed node, if any. * If no allowed nodes, use current [!misplaced]. */ if (node_isset(curnid, pol->nodes)) goto out; z = first_zones_zonelist( node_zonelist(numa_node_id(), GFP_HIGHUSER), gfp_zone(GFP_HIGHUSER), &pol->nodes); polnid = zone_to_nid(z->zone); break; Will collapse the whole MPOL_PREFERRED_MANY nodemask into the first notde into that mask. Is that really what we want here? Shouldn't we use the full nodemask as the migration target? -- Michal Hocko SUSE Labs