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 DE65CC54EE9 for ; Tue, 13 Sep 2022 03:40:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 001F46B0072; Mon, 12 Sep 2022 23:40:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF3AC8D0002; Mon, 12 Sep 2022 23:40:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBAAB8D0001; Mon, 12 Sep 2022 23:40:01 -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 CD1A66B0072 for ; Mon, 12 Sep 2022 23:40:01 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0EBBC1C6213 for ; Tue, 13 Sep 2022 03:40:01 +0000 (UTC) X-FDA: 79905658602.30.75814C1 Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) by imf12.hostedemail.com (Postfix) with ESMTP id C47A2400B1 for ; Tue, 13 Sep 2022 03:40:00 +0000 (UTC) Received: by mail-ua1-f54.google.com with SMTP id z14so3879264uam.10 for ; Mon, 12 Sep 2022 20:40:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=SyK81HZ9JPEJagWfXq4zWZFpLC9vh3BZpRR5zeN7SjY=; b=Auv2rrGyZIMhkc+UHK8Bpnx+XLmnxCOnxjIfe5raDy4Geut4ckQ693/uSO+/0lZgRp QFCPDDN1A3GL0FZO9q7V3IpFdxxdyFyE29lw+bRxp3Cj+3cXsENj7oWcTyix+0dpepUy Hom7oWLxsdEW6vNuBrNRYzmFrmDZWUYCgUhs1O6PnnNjtmAMjQe0wvsdqM5RnmlTufHq 8a7jkNIy+qNf9/NZMcfNE21IP4CXyajYkm9clqM1Bf6goB8miT5GtgnDx9+0CEMuPB9w GrF7Lwjqi5GfNWYkxmegnfGS5NEM92aiiTQSsGTuEWxIqGbciGA2PC6eDeAv7rZJP7CK yv/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=SyK81HZ9JPEJagWfXq4zWZFpLC9vh3BZpRR5zeN7SjY=; b=tyzeQkNQn4HwcsVJnsn7JcO3/TMSosDirxYVihvexSLLYCy8XvTQabjJtXEAHcOVjA +JI/eOel6ssWM4cEdT2gCuPWrGN9RDuB1b21gNWIRuJBaJauSiJQ4zfuUhghDrCQNkW3 efpC+tZDRwuDb9bLtqBrw+6zPtayCtvnbYhtGVAIdIZePIiHBkw/LQj9bWvSQ/IFNBMC 3wjcCpkXayYYbdmtClNTIEINBGYSH2Kgx13wEo5OEqe7v5a3L1sAwdjljB/vtYPwJBhH eqdWJ4z7QuXZ3w/EKd62OyrkYkRE39259US9Wwtbe2ftLbt25Jcs9nNEko3U9yY3aMka +E/Q== X-Gm-Message-State: ACgBeo0/fgGxLfaPDZhuJCwipir3oox2+B3h8o6KXjNiMMaacgDldJHA 6YnlpkKKZl5qtiK8uZzd7HBnAYcfxfj3e3OEfafcZQ== X-Google-Smtp-Source: AA6agR53jXOvAyemWZqLSZjuNXVXjtOif6PVKyAxWWZU2SMQcwU4QdxBZPHWdkrfEr3eeFC/Qx+fgZ4xTKgm25m+UNU= X-Received: by 2002:ab0:1322:0:b0:390:e7af:a87c with SMTP id g31-20020ab01322000000b00390e7afa87cmr9036455uae.113.1663040399913; Mon, 12 Sep 2022 20:39:59 -0700 (PDT) MIME-Version: 1.0 References: <20220906194824.2110408-1-Liam.Howlett@oracle.com> <20220906194824.2110408-68-Liam.Howlett@oracle.com> <20220912124559.f1f5c26b882325fe5e5c5cce@linux-foundation.org> <20220912140337.cccdea4cf67e4c4126ae158d@linux-foundation.org> In-Reply-To: <20220912140337.cccdea4cf67e4c4126ae158d@linux-foundation.org> From: Yu Zhao Date: Mon, 12 Sep 2022 21:39:24 -0600 Message-ID: Subject: Re: [PATCH v14 67/70] mm/vmscan: Use vma iterator instead of vm_next To: Andrew Morton Cc: Liam Howlett , "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Auv2rrGy; spf=pass (imf12.hostedemail.com: domain of yuzhao@google.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663040400; a=rsa-sha256; cv=none; b=Itzg9CsMaYtc6Z8QjUtow6XTuMrHByXYHJxhydmREbuEbhkXk+RJMCOCG8r3XZzHJvLAFD slaz1MreMc9JV0Z5jUGC1STJkY7x3Ruq8EXcOmRRJwJSmmh9inJg4C87nXMXD6U8I8Nc4Q MAbZQ+Tu3pI/1kt7PyKATtHfUxYuOVo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663040400; 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=SyK81HZ9JPEJagWfXq4zWZFpLC9vh3BZpRR5zeN7SjY=; b=667rY3b3Doj9l9pvrAQ/4YBYlBIEl9Gp+r9KtnJ+mx4Gd9mBJjNh8GWVNfSb31wtbPF4sT guVCRU1lIHv52JeAJ5PyjDkMNArDSnOXjTXRLvexAcPGVPeRv4OeQNlmnFEK94BnGTrRXE iZXvkB/fkWxR0dy6RcVyZmliyksTzbA= X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C47A2400B1 X-Rspam-User: Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Auv2rrGy; spf=pass (imf12.hostedemail.com: domain of yuzhao@google.com designates 209.85.222.54 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com X-Stat-Signature: z5c47rhmat8ox84zb5dgxdzs58cp7odm X-HE-Tag: 1663040400-485376 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 12, 2022 at 3:03 PM Andrew Morton wrote: > > On Mon, 12 Sep 2022 14:01:28 -0600 Yu Zhao wrote: > > > The diff between the original patch and this one, in case you prefer to > > fix it atop rather than amend. > > Always... > > > diff --git a/mm/vmscan.c b/mm/vmscan.c > > index a7c5d15c1618..cadcc3290918 100644 > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -3776,7 +3776,10 @@ static bool get_next_vma(unsigned long mask, unsigned long size, struct mm_walk > > VM_WARN_ON_ONCE(mask & size); > > VM_WARN_ON_ONCE((start & mask) != (*vm_start & mask)); > > > > - for_each_vma_range(vmi, args->vma, end) { > > + for_each_vma(vmi, args->vma) { > > + if (end && end <= args->vma->vm_start) > > + return false; > > + > > if (should_skip_vma(args->vma->vm_start, args->vma->vm_end, args)) > > continue; > > Thanks. > > I added your signoff so I don't get a nastygram from Stephen in the > morning. Please send along a suitable brief changelog? mm/vmscan: use the proper VMA iterator When get_next_vma() finishes iterating VMAs within a range [start, end), it expects args->vma to point the first VMA out of that range, if such a VMA exists. This allows its callers to continue the iteration with a new range above the previous one, if those callers choose to. for_each_vma_range() always sets args->vma to NULL after it's done. This may mislead those callers to conclude that there are no more VMAs, and in turn they terminate their iterations prematurely. This fix replaces for_each_vma_range() with for_each_vma() and explicitly checks whether the next VMA is still within range, and if not, returns false to indicate the current range has ended. The callers may continue with the next range if args->vma is not NULL.