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 9B39CE77354 for ; Sat, 30 Sep 2023 04:20:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 20D776B0203; Sat, 30 Sep 2023 00:20:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1BD346B0205; Sat, 30 Sep 2023 00:20:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0865E6B0209; Sat, 30 Sep 2023 00:20:46 -0400 (EDT) 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 E863B6B0203 for ; Sat, 30 Sep 2023 00:20:45 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id BC746406A2 for ; Sat, 30 Sep 2023 04:20:45 +0000 (UTC) X-FDA: 81291962850.09.C86DFB2 Received: from mail-yb1-f181.google.com (mail-yb1-f181.google.com [209.85.219.181]) by imf27.hostedemail.com (Postfix) with ESMTP id 007B740010 for ; Sat, 30 Sep 2023 04:20:42 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="vhOS/Htk"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf27.hostedemail.com: domain of hughd@google.com designates 209.85.219.181 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696047643; 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=FwtKmPvCMIR2EIv34/KoCTCLjCkr+A/C7qE9mBWX5MY=; b=5PFDwJzdbpgPVo27J0YRBcrcyIccN+Gioz+lJIuMqMvZVo9nrnMrAHlhWrLtKK059ChASH Qhvu6ElQjTgU4PtDzI1pLJvaeY33aKiz07CFYy3ZQU/22CXYtnx7ptjkDcfcmJQ0nleIiI vYSHGZWasM6cLhZoIRXrdGQe8TyVtYI= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="vhOS/Htk"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf27.hostedemail.com: domain of hughd@google.com designates 209.85.219.181 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696047643; a=rsa-sha256; cv=none; b=NSAD0il/mipJyTjwQpsB96N3QwLT0IW5lB7ZxR/IWTRdqdIinjFtB2jsjIgLsjtgcyAdIC RjTS/humSzXqLCCIdZunzecVdtGNz//I/aDZhCviOIX3msHmMKh6GKP/bpXkp1Uu7TN6ax dfs7jDeDcuFWOVLAQQBgF3RCIud8yIE= Received: by mail-yb1-f181.google.com with SMTP id 3f1490d57ef6-d8198ca891fso16337520276.1 for ; Fri, 29 Sep 2023 21:20:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696047642; x=1696652442; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=FwtKmPvCMIR2EIv34/KoCTCLjCkr+A/C7qE9mBWX5MY=; b=vhOS/HtkpWvbBOKJffjbCHvhleMGz/4AYSwUsyEllQuU/BG/cBeQr/mx7a6tp8LLfO SOUAPtBMS0lXT8jlE8IQHKSAkBYmry8nlMxBlJ4tKVwU8sl+HZBW9QZOzG0qdWvNqjTu wkZUNFr0ku+VunbEiZHNym/EhpiotZ38EdkiOmUpI38+ko96mc3wcVw9S1BsdGFZcMnR 0oBBtn1r5Xied9FayQHQZIBvf63CfL4ppIPTBG7/T06evQWSMD7O5I7tTuSnXs2eTZQy 3DUVZdqVDtiB3JLjA5zrYw1QBWMkDgIjnPS/yi+0mj2OqDXiVg85GFU4PBzn3gIWwNLw uInA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696047642; x=1696652442; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FwtKmPvCMIR2EIv34/KoCTCLjCkr+A/C7qE9mBWX5MY=; b=rhZUj6lt3kG3AJkYLvTBY0r987ga6Anm7XO8m+D/sQ6Rqzj0EH/FGgpmoAf0FoJLvI 4W8aUZsKH/BJHi+EWqDD1BQTVJMg+AZs7XHqdaTSnQauByNqeUypvhoMRpd2WcL3MT2L vxCT41WmuByPEP1tR7FsJNOWKN4Lj55/7r4mX32vPCEd1x9yIc9To3pOdxa3PIjXxAJ8 eH7I4lg7imHbrp43vnfOoWKD4IXjEFGXQIRtMxLUkm/TcsJxrzuLcnwZX67p7d/ruwY/ 3/SOsa/+vh5zJyFbLk1nvQGabduYQttdFUE/2Tr4IysimMRdImcLWKUX79WC3cb73fcZ vBPA== X-Gm-Message-State: AOJu0YzxPusu3nG6UUwRXJn2Q0CzrM+HY3Ad3tIoH3z3FnpOsCvpeles wkVgjBORE1zE2gNQWMU3c2vgRw== X-Google-Smtp-Source: AGHT+IHUA18m9biIbxpaGmipd7DQbu+U5iTITctyN7T2GGKvk8Ng6u5/6qw0vOOPwqD9qb0zUnRo7A== X-Received: by 2002:a25:8204:0:b0:d86:55a1:3e5f with SMTP id q4-20020a258204000000b00d8655a13e5fmr5923440ybk.48.1696047641999; Fri, 29 Sep 2023 21:20:41 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id o5-20020a056902010500b00d865e9d394asm4345301ybh.14.2023.09.29.21.20.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Sep 2023 21:20:41 -0700 (PDT) Date: Fri, 29 Sep 2023 21:20:21 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: "Huang, Ying" cc: Hugh Dickins , Andrew Morton , Andi Kleen , Christoph Lameter , Matthew Wilcox , Mike Kravetz , David Hildenbrand , Suren Baghdasaryan , Yang Shi , Sidhartha Kumar , Vishal Moola , Kefeng Wang , Greg Kroah-Hartman , Tejun Heo , Mel Gorman , Michal Hocko , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 03/12] mempolicy: fix migrate_pages(2) syscall return nr_failed In-Reply-To: <87sf70rqlw.fsf@yhuang6-desk2.ccr.corp.intel.com> Message-ID: <119e243a-b3f0-b6d-4b8b-9dab1acfc34@google.com> References: <2d872cef-7787-a7ca-10e-9d45a64c80b4@google.com> <87sf70rqlw.fsf@yhuang6-desk2.ccr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Rspamd-Queue-Id: 007B740010 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: rpmcneumskwpifchtbosdkwy3w51tcmr X-HE-Tag: 1696047642-623488 X-HE-Meta: U2FsdGVkX19ulizY0a62uIRRMZ5f1GhwpDL6UD64Xt2uvt5gRD8QbyuC0Dcx/S+z1MWBGkKAzHRgPohTUnx8xYQzYXO0y2xgLaEsXL/dbsOP0UklITjqUnyiVeFsiz2JVFpxij99+pr1hG1/8a8ZAJACHKizTiMf6h+8miLbnLgvSnuOisWc6UDHHhSI31tQDDaMUrw36oTkgx2erfFjFC5YmKfaoPqs1o7pWDPlT2iPQPE42zYTo6m/PpYa5jujH9RqzngHwSyokT4K0UzrSnqh4AUtbnkNv76uNBPEAY4yiKLVPhIQxhNx7H5ET1Lk/CYcNj2lkspjCL8mQ+AXIVxgQYiVVtXmv3037y0blsomB+Gg3zhCDcTLUcrEOT+O+qCZ1UpVvzGJA+acwWVwdTRAXy8z7umo8HFprqsWBKwtpfShKy9kAN+3R0vZ2HF48U6gdGJy40+ufbGzJSXLPp4nrtaZdbEdq5BtfYnyUnHchJAkBKHX3VeQKuymjQtzwGAKyBkegtDxRBQ8TcEvKormuY9jshONwtzDtH4mNSeEvPOicm2GnxgWJgIKLrLq2hqhPLLx7RdozKQqrtMOPFZ37AckkOnOse32Zob/q4PVZEyBskGQDRyo37tlSnUOF/UaDLrITBm+MkQtPFUEjH92XJ7Y43SFeJqdrjPeYI9xGSIUHdpvcdbOxLJJT/MCxzUfvKvddWuf1BqoqFsNChCf4XXk7xgMFrT9U+NaTyfYGJFBaetn5+rUrWmHFG8zYSQjKXKqb1ZHkNRbhj/gFTf/1dt26oMm2pew59JVoQC24w4MG8hc5F8RLrS9HCijjSCYqNnHbofeptQG0ka5KX9S1SM4PhOiIZPcr8WwAp8H2pT9SFg/MXU6I60IKipbBN/5tkn57X73GSsowTet0hzzxndH/OYxfBb69s3HYvOYttMBNAOZfsZ6AS9d/sqg8vz6GLUUIaTSEiejuR5 c623L+un pGBAIltKeVHvoQ/+HcnkPvYVjg20XlbbFVn9SjBBmK5L09lyQ92m87Sr709EudXbcEHeVUrifFqO204Nr3HgRdTWNu8VNsq5MfLF0Hja0vrbJU1/H4BjyqDTQW3ZEpNkXGaNrHgVOnRNi2o2iEW6Pj/wKUXhAHGitC9HVsZ3ZGqFEWvwO5nPSWjvlfJpnxVXbi+g5GcvNMg2uMFWbUB+z+hsuhZe5Yl02rSR2/QkQW/caMOpEcqba8/oXDXXZ/NazjrK+rfoPiny7yTVR4EDoOvACalnGqc8HvKUUkkhXmYUzvQs7YQTEFc8s0quYW+9iG50dNzBxjutJXXoJLgITNzGjQ2uuQ2Wj933/DVaoGrIQqVIVw7TY+gUlYepldHAL9mOozGhrHnz7H2Ppg9VQQWaMmBvurBiv7ffOEh3Ce+yssM3UKtod9UMNFJR79h+DyUpRU1XUPu04b4T4LGKOTN636A== 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, 27 Sep 2023, Huang, Ying wrote: > Hugh Dickins writes: > > -static int queue_folios_pmd(pmd_t *pmd, spinlock_t *ptl, unsigned long addr, > > +static void queue_folios_pmd(pmd_t *pmd, spinlock_t *ptl, unsigned long addr, > > I don't find that "ptl" is used in the function now. So, remove it? Yes indeed, thanks for spotting that, I shall remove it. And I think addr, end are also unused: I'll remove them too. ... > > + if (!(flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) || > > + !vma_migratable(vma)) { > > + qp->nr_failed++; > > + if (strictly_unmovable(flags)) > > break; > > - } > > - > > + } > > IIUC, even if !(flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) or > !vma_migratable(vma), the folio will be isolated in migrate_folio_add() > below. Is this the expected behavior? Yikes, I think you're right, thanks a lot: it was okay up until I realized the "qp->large" issue, and had to separate out the migrate_folio_add() failure case. Late changes... > > > + if (migrate_folio_add(folio, qp->pagelist, flags)) { ... > > @@ -731,22 +714,22 @@ static const struct mm_walk_ops queue_pages_lock_vma_walk_ops = { > > /* > > * Walk through page tables and collect pages to be migrated. > > * > > - * If pages found in a given range are on a set of nodes (determined by > > - * @nodes and @flags,) it's isolated and queued to the pagelist which is > > - * passed via @private. > > + * If pages found in a given range are not on the required set of @nodes, > > + * and migration is allowed, they are isolated and queued to the pagelist > > + * which is passed via @private. > > s/@private/@pagelist/ Right: or even better, simply "queued to @pagelist." ... > > @@ -1201,8 +1187,7 @@ int do_migrate_pages(struct mm_struct *mm, const nodemask_t *from, > > lru_cache_enable(); > > if (err < 0) > > return err; > > - return busy; > > - > > + return (nr_failed < INT_MAX) ? nr_failed : INT_MAX; > > return min_t(long, nr_failed, INT_MAX); > ? I may be the odd man out, but I read it more easily how it is: so will stick with that, unless others object. Very helpful comments: thank you, Hugh