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 X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D827C49ECA for ; Mon, 28 Jun 2021 14:48:10 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D9FB161151 for ; Mon, 28 Jun 2021 14:48:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D9FB161151 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codemonkey.org.uk Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 0284B8D005C; Mon, 28 Jun 2021 10:48:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F1A148D0016; Mon, 28 Jun 2021 10:48:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBA9E8D005C; Mon, 28 Jun 2021 10:48:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0027.hostedemail.com [216.40.44.27]) by kanga.kvack.org (Postfix) with ESMTP id A998B8D0016 for ; Mon, 28 Jun 2021 10:48:08 -0400 (EDT) Received: from smtpin37.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 862B11B64F for ; Mon, 28 Jun 2021 14:48:08 +0000 (UTC) X-FDA: 78303412656.37.E7C9EFA Received: from scorn.kernelslacker.org (scorn.kernelslacker.org [45.56.101.199]) by imf25.hostedemail.com (Postfix) with ESMTP id 24AB16000147 for ; Mon, 28 Jun 2021 14:48:08 +0000 (UTC) Received: from [2601:196:4600:6634:ae9e:17ff:feb7:72ca] (helo=wopr.kernelslacker.org) by scorn.kernelslacker.org with esmtp (Exim 4.92) (envelope-from ) id 1lxsYQ-0000KC-9i; Mon, 28 Jun 2021 10:48:06 -0400 Received: by wopr.kernelslacker.org (Postfix, from userid 1026) id D320F560148; Mon, 28 Jun 2021 10:48:05 -0400 (EDT) Date: Mon, 28 Jun 2021 10:48:05 -0400 From: Dave Jones To: Mel Gorman Cc: Andrew Morton , Dan Carpenter , Jesper Dangaard Brouer , Vlastimil Babka , Linux-MM , LKML , Linus Torvalds Subject: Re: [PATCH] mm/page_alloc: do bulk array bounds check after checking populated elements Message-ID: <20210628144805.GA3687@codemonkey.org.uk> Mail-Followup-To: Dave Jones , Mel Gorman , Andrew Morton , Dan Carpenter , Jesper Dangaard Brouer , Vlastimil Babka , Linux-MM , LKML , Linus Torvalds References: <20210618125102.GU30378@techsingularity.net> <20210628042759.GA19686@codemonkey.org.uk> <20210628115322.GA3840@techsingularity.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210628115322.GA3840@techsingularity.net> User-Agent: Mutt/1.10.1 (2018-07-13) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of davej@codemonkey.org.uk designates 45.56.101.199 as permitted sender) smtp.mailfrom=davej@codemonkey.org.uk; dmarc=none X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 24AB16000147 X-Stat-Signature: a1c14165skg8u6rkc8xg3hdre8afhxiz X-HE-Tag: 1624891688-38239 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, Jun 28, 2021 at 12:53:23PM +0100, Mel Gorman wrote: > > This made it into 5.13 final, and completely breaks NFSD for me (Serving tcp v3 mounts). > > Existing mounts on clients hang, as do new mounts from new clients. > > Rebooting the server back to rc7 everything recovers. Bisect lands on > > this commit. > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index ef2265f86b91..04220581579c 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -5058,7 +5058,7 @@ unsigned long __alloc_pages_bulk(gfp_t gfp, int preferred_nid, > > /* Already populated array? */ > if (unlikely(page_array && nr_pages - nr_populated == 0)) > - return 0; > + return nr_populated; Yep, this works. Dave