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 616C4CE7A8C for ; Mon, 25 Sep 2023 15:48:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9340C8D002E; Mon, 25 Sep 2023 11:48:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8E46C8D0001; Mon, 25 Sep 2023 11:48:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7ABD98D002E; Mon, 25 Sep 2023 11:48:45 -0400 (EDT) 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 694C08D0001 for ; Mon, 25 Sep 2023 11:48:45 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id F0044140668 for ; Mon, 25 Sep 2023 15:48:44 +0000 (UTC) X-FDA: 81275552568.21.777E8EB Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf05.hostedemail.com (Postfix) with ESMTP id 32446100013 for ; Mon, 25 Sep 2023 15:48:43 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=Et6bCcEb; spf=pass (imf05.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695656923; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2ADckJ8hfwrEXitITVWEpOvTRYU/IALxGGUU6vBaWgA=; b=QLpysZSW9aYnnUE81N4JEpKFgo8XB2UdUOauXHRCCYhKj/WTikNckVchW2X2G2p8i3aTDe 4jc8CkyHTLCzKehulULWtz2/rUpUwzDCw+zxxfZ+q0ybZeL2jGDnu1bJ8y37DcuZe7/7sa LNUiICMyIHoHy4npD7ivzjpaJwO0J0U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695656923; a=rsa-sha256; cv=none; b=e1Ep4vAZbQ2tq84BDtwbMgm79nNnKDME+2Q1u5hIDUxDPzNJlrAGFMPyKxOfUTqn/5bW7b 5S9osYDkEuO166L/0v/TwRnTorz09eBqJmwM8ZDOI34Ttuy694K9PdYUJZGYE7VAJNyH3q NFDvg1Sc4oBs7HzHoiOtv1iZ9uuI7Go= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=Et6bCcEb; spf=pass (imf05.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 43F12611A5; Mon, 25 Sep 2023 15:48:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 70841C433C8; Mon, 25 Sep 2023 15:48:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1695656921; bh=ydw6MbSohqavIDDQv26z7jnbFjP4NN+5JbvGYYNEn+Y=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Et6bCcEb6RTZ/kaR7i4cgQdrb85R3iQhBnO3yW+Ufr5ECgAVL4Cyt46Staj9nUkZU qfH8UwchovmBRYj00gpCCXcY9KFw2nCL6LN8ffmXsoWLc1y5qoPo3O+zkcI41n8d4I fuyGb7stM4MqvlNf2YeoX/VIhBryhPvwRf2oU2Uk= Date: Mon, 25 Sep 2023 08:48:40 -0700 From: Andrew Morton To: Yang Shi Cc: hughd@google.com, surenb@google.com, willy@infradead.org, mhocko@suse.com, vbabka@suse.cz, osalvador@suse.de, aquini@redhat.com, kirill@shutemov.name, rientjes@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH] mm: mempolicy: keep VMA walk if both MPOL_MF_STRICT and MPOL_MF_MOVE are specified Message-Id: <20230925084840.af05fefd19a101c71308a8cf@linux-foundation.org> In-Reply-To: <20230920223242.3425775-1-yang@os.amperecomputing.com> References: <20230920223242.3425775-1-yang@os.amperecomputing.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: d7fd55iwztkdoq76ihiocfy4eb3ssac5 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 32446100013 X-Rspam-User: X-HE-Tag: 1695656923-709137 X-HE-Meta: U2FsdGVkX1/27YljesJd4O3lO14pR2ONjbM4rVZF4DadwNEYdEbq+6/3to2ryM1XESxgCPD01RAi4OHav62D5tRJMc02oWPHdriaO99a1ZmvwAqln1Rq+zlyN1R+1gRBjbZs+RTi0QNuNyp55ZIFbCNicjT1AAAfnNgeKAWuEwqSdvbzXzhZisngd3CRnjFkdYjjdtM1Arj2u9GFTMi6EWPir/i97DstvkMsKW++cw/NMylEGN1DPCLxr5DfjHm2xuOAfZl6FkUKLC9gxfcD3T5Hc2sbclCglxXjF440wKZE3mU2wz4KMB1lCEbOw34+Yb/J23DWzThDgaB9N/8HhKNVXFNAe17KOipeol+Lsz41BtXyMeW49U6SdETekhbRPMF147dIo5iSmLlM+LPaIR0OzZy7ju1wdYSKOMcVSsQpVK/I7pS9BfhLdhOf5ipLpgCq7zPtLSY7Lfx/vVBT/77Ck+gRT+NG//9J9XTr73z2hflzWyTHAqg/ve7lBk+CVfCcbXdVzGHuMB8HBhK6KUhH5RzjAkliELjf5tzzYothFIZUy2uwAOSQW0VaCewNoiMZRFpd2NCZ8xXEa1Y14hgTzDQsF6eZ5cZGMB2PtKl+qNA0C6WWoTlediC60JzAK0UjVETPXCaCl5ULpeAjqmpobFn/zAEjZSdn0vR3Z7zJowbQIn0eYq3i7uF6wI/wGZUlLrLt4OeegJJuJa/NHcyPPaKo4fzLpPVTkREk74Mt0E+JWWqF6MP9Bti6N6yL6wSN3S//q4CCbphjCJqbDvbrH90mz/BkbK0yQ1Rtf1W/yM9gTquFWrFGt/8a74vG1zGwtWVKgnDd0altILiElDnP8QoRsZp5OpP9H+asKQ8mvT7o4CLPNHerSTy6EW0YUUEypB2FnNn8SRZ9Xwji/jTfhzHsv92sOmVmhcowZJz6SVwxK2R6qs2VAgr0eKP1s4k25BhxLHy3Mia0qoB VsA8DJFF EaaFYq6WtvtKUKwsYlbvBFmSUNrpdMJzfJBSsXaldAjPjqn3ZMhgq1VAiGgUMR9QMv0QKNnGaHuLC15LExAzvSZp+YsXmMwhHrc/N3XhiWsdJrpIxhjybymHzKEh+AwkB6W2sNED/LQw4sc5/AtO2VdqQSD+iv2eihFOPIObYBRvWPu893pBpgK52FqgxFIBjoBku1nRaGSAsuP5FR9PnQohyPPzf5juAiA1pWF4fVl1zG2yddnI/vBw2CBOIjaQCe/hQQZwSz7zOGMi0LH4vKZBChnM8rHfkYdPCPuzLhUr7LbV67muieX2EBrLMA1zMF11ybRCd5IQFTdSCQEp1Lz0isA== 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: On Wed, 20 Sep 2023 15:32:42 -0700 Yang Shi wrote: > When calling mbind() with MPOL_MF_{MOVE|MOVEALL} | MPOL_MF_STRICT, > kernel should attempt to migrate all existing pages, and return -EIO if > there is misplaced or unmovable page. Then commit 6f4576e3687b > ("mempolicy: apply page table walker on queue_pages_range()") messed up > the return value and didn't break VMA scan early ianymore when MPOL_MF_STRICT > alone. The return value problem was fixed by commit a7f40cfe3b7a > ("mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT is specified"), > but it broke the VMA walk early if unmovable page is met, it may cause some > pages are not migrated as expected. So I'm thinking that a7f40cfe3b7a is the suitable Fixes: target? > The code should conceptually do: > > if (MPOL_MF_MOVE|MOVEALL) > scan all vmas > try to migrate the existing pages > return success > else if (MPOL_MF_MOVE* | MPOL_MF_STRICT) > scan all vmas > try to migrate the existing pages > return -EIO if unmovable or migration failed > else /* MPOL_MF_STRICT alone */ > break early if meets unmovable and don't call mbind_range() at all > else /* none of those flags */ > check the ranges in test_walk, EFAULT without mbind_range() if discontig. > > Fixed the behavior. >