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 E5215E80A8A for ; Wed, 27 Sep 2023 21:39:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 69EF08D00A0; Wed, 27 Sep 2023 17:39:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 627A98D008F; Wed, 27 Sep 2023 17:39:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F0AE8D00A0; Wed, 27 Sep 2023 17:39:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3E36B8D008F for ; Wed, 27 Sep 2023 17:39:39 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 20783160594 for ; Wed, 27 Sep 2023 21:39:39 +0000 (UTC) X-FDA: 81283694478.20.9E754FB Received: from mail-yw1-f174.google.com (mail-yw1-f174.google.com [209.85.128.174]) by imf01.hostedemail.com (Postfix) with ESMTP id 6C87F40013 for ; Wed, 27 Sep 2023 21:39:36 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=TGfKtsrQ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of surenb@google.com designates 209.85.128.174 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695850776; 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=tmIn/dsnWBGcOkNyP3wbdNzRj2XOsqPnxvNyHRusvkY=; b=KBG/9djkJjb4w1SbQRA9+N5X9WwQr+uBr1KzOS0OvDAbZbt657MnxCX81na1Kih+arM3va +5JXrvbel+HIHZlE5t/WAjGquhG4P5X8yZXi9/Cno5cTFFVcTMahg9AT9EO13mD052wGNk ftHVUuOGyu8f4ZhOK9fqVSlHQwW4WVU= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=TGfKtsrQ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of surenb@google.com designates 209.85.128.174 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695850776; a=rsa-sha256; cv=none; b=u8HplccyB26Kksiyd4cJQ0voeT14TB0ffgKg4/jGQgG+oVgRYxmIw+o6Lt6TvtUHROb9VK ai1FpmMvdXxAxM8TqJHSgyvqODNKA26Huqws6wQPHYfuTx3qeSDfsrMshICcC/q07WMlaI tCdNeyc50pSYTuWFnoCEhTtfV69xviE= Received: by mail-yw1-f174.google.com with SMTP id 00721157ae682-59e88a28b98so170353357b3.1 for ; Wed, 27 Sep 2023 14:39:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695850775; x=1696455575; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=tmIn/dsnWBGcOkNyP3wbdNzRj2XOsqPnxvNyHRusvkY=; b=TGfKtsrQkQiWUBnu0/PhrbBwJEUZNYd05m+CqFvcQPqw7dUY8cPGuTVJsADTclrYPT Y3ynhb+GWnuwDe1wBDhpGvU1iQSaeIg9SnZYNXne3FjOnYUzBVeWcqVb3ed2YeKz/Vc4 DSCFMdbhq466DAeND/Sgtbo5fo7TYSVuzO14KQkOnX5R1plbPUeKj7lPNV1opf19A/U9 t6alZNu0APjNUB7NAgz205CwfP7xktDeEb+EusPEuyXQfeeWKQmKekz1UV3Rpj+mUnIS 6rBSbr1CFdZGa0nY5SscU5X7Z6yP7wEfKdBJL/aIDO1vVvVix/20Y33ZWtIJeQ85XP+J aJpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695850775; x=1696455575; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tmIn/dsnWBGcOkNyP3wbdNzRj2XOsqPnxvNyHRusvkY=; b=jVSAp/o0Ip2H2b7JxHloFT1ieOLzbzvosWVpFEQgFXa2sDkAri84Z95qOAq5VVOrfP fQqGiqcTmgPqYd5yrNwmwxgld0yl1s8Ygt2tKmktyzyljHZDRLUcFb41X8+35sVtbAET Xi/josQIgWNlLJLfV7MtQy0EruRkfFHBpmTaPDCbjxuZg7FdnEkKmwDkebzSEGn6mvE9 xyy7RriBvdVGD05apu/Yt28y0U9KG/aKlmD//j+liLoDvE5fr8lOR3MxTcN5VDjKXic5 gxcxj4bqQaHdkZmQvPnqIDVlMpCTv+iElY2VnTcmbaL78QtG4mHkHcb1C+0qqAZLb4wg K11w== X-Gm-Message-State: AOJu0YynZJjORe0uRIIjo2fQw34opOOBFyhaANHP3hIYRsOZZ46fCUqR nhmv5YPdhPsKYIpFe3J6jBoahqj6zhoJcu9TBEsLOg== X-Google-Smtp-Source: AGHT+IEgtxvEZTS7nj888nK+ibjNHsD4ifyjOceNKNWggrpLBaTJimKk+ph8GiVbZOQYshyOmycJsvLK022QeVxaMwY= X-Received: by 2002:a81:52cd:0:b0:570:2542:cc9b with SMTP id g196-20020a8152cd000000b005702542cc9bmr2585219ywb.18.1695850775325; Wed, 27 Sep 2023 14:39:35 -0700 (PDT) MIME-Version: 1.0 References: <20230920223242.3425775-1-yang@os.amperecomputing.com> <20230925084840.af05fefd19a101c71308a8cf@linux-foundation.org> <90fc0e8d-f378-4d6f-5f52-c14583200a2e@os.amperecomputing.com> In-Reply-To: <90fc0e8d-f378-4d6f-5f52-c14583200a2e@os.amperecomputing.com> From: Suren Baghdasaryan Date: Wed, 27 Sep 2023 14:39:21 -0700 Message-ID: Subject: Re: [PATCH] mm: mempolicy: keep VMA walk if both MPOL_MF_STRICT and MPOL_MF_MOVE are specified To: Yang Shi Cc: Andrew Morton , hughd@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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 6C87F40013 X-Stat-Signature: rpiiotdyrf5iwttbkbo61i3f6iuqysyr X-HE-Tag: 1695850776-624670 X-HE-Meta: U2FsdGVkX19xpIzfQJz3zYU7Zl5O5gEwCunuExa2qwu2KLDsi8QaWp2kwq3h3lyWR+u3NBui5nX/8gvR9d+k5wwXVezdirgOO7Fgk4OqXpADpMSE4hZaeYYeInwL3h7UAVZESuDYZLcG5w5WiuQDZGsaoYSrq7PqKG47nDiYjFfrWTNCyD+z5I/Us9p0ytuH5OeTqToCGUvMQ8hOSQDWQNrYAYmmbkr43ySZSDkYlmQokvjMx2cnpHDAf4TneV/Xl3lQW1/V8lXuRjBqm6pxpGiDGt3byce9mVJ6SdS+vDV4kq6+pt2TS4Nbu/GKXJ4zuMZ5fVA6wNClVepydrhmnDVMWYna3zoLpLsTjD0bCnlX6k3nJBqxTrXE202aUR8EQzs2EC/RMeUGTtuKAmCEqpnmrZgWYmayGQkzeABDInRBJPD0HhAOMksV8JjnMxCtfrG7v792jHvqU+t8AGNzgOyjGBCZl55pN9tmm9eFLa0xrlxWFZ5CMnMvRbOiNEcs6VqcujyxKl5LKZ8VvNJ6wyGAOlEa9qjiM+SBpV6mKllBEYdfYRjq10vc4VXu2TOPjAQawYG2kKZpPtMDWhKBO3P+tKDWPZ1SU0zQfzh0QUKmt5wVB+yp/Z//Ip3nw2Cgwu+H+qQQ+DH5K8zRJpuL8q3ZSkX5ntdHZweGFkK2tcFfCrnoJx6GhzUjeVHV53C2vO3OlaOgdgYFtJRiZgomBHbR5Kt6LfK8ODSQlRInZjxuv+Hb60OLIJGR/3w+dadfvxtr+gXvliKcDG61B/kPR1TElvy4ibtg9zcLv5n2eoX9NZ+0LC3OdOwuHuPfOx+/n1alp2EpxxjjLNlscC0Ug2FCSxlZeZNJnMUtugoCfCQTsnEm+DmwoBCv6iLtTHKtAhfh4LjYh8Gsr2TBnwFJppZ9qw0yVoCTLDXKIFzmQ0KS5u4bJ336czNSCyAHvhXTGyeFUO59Wx0y3pZb3ao S6duUbRu 8NZjsRg/pSHqZc6G1U8iUU400QOn7JInD07SHHz3LnzZiNla5XczV4YKZ24++vVNCN0swgQ3S6B5bPvplYsbpygVHoO60MQfbXaZnTNrW1cH5bGsvm1Zq7I6DLouAGNEEftN/QYCoBGJ9uVViN6o5RMmo1nv9KkLGLlQrXak7UoZA0+csmsroeHLBmCnOgcyjA6x/IGdl9T5w1q1cu+an0ZL6XvIyXTnZDON0HrTzi1QjLQ6DRZ7dpJPNA7PEIkYxmK3yTob4g8jmI7OAgSfR5ukhZDbAFnQOK0CJmLVspD4soo5H7yHTey+iwT6QI6VFdrsD 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 Mon, Sep 25, 2023 at 10:16=E2=80=AFAM Yang Shi wrote: > > > > On 9/25/23 8:48 AM, Andrew Morton wrote: > > 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 i= f > >> there is misplaced or unmovable page. Then commit 6f4576e3687b > >> ("mempolicy: apply page table walker on queue_pages_range()") messed u= p > >> 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 speci= fied"), > >> 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? > > Yes, thanks. My follow-up email also added this. > > > > >> 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 a= ll > >> else /* none of those flags */ > >> check the ranges in test_walk, EFAULT without mbind_range() if d= iscontig. With this change I think my temporary fix at https://lore.kernel.org/all/20230918211608.3580629-1-surenb@google.com/ can be removed because we either scan all vmas (which means we locked them all) or we break early and do not call mbind_range() at all (in which case we don't need vmas to be locked). > >> > >> Fixed the behavior. > >> >