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 97D30CA0FE1 for ; Fri, 1 Sep 2023 09:33:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4C4C28000C; Fri, 1 Sep 2023 05:33:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DFCD58D0002; Fri, 1 Sep 2023 05:33:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC3BD28000C; Fri, 1 Sep 2023 05:33:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id BAC188D0002 for ; Fri, 1 Sep 2023 05:33:03 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7C49FB29C0 for ; Fri, 1 Sep 2023 09:33:03 +0000 (UTC) X-FDA: 81187514646.11.EEA14D3 Received: from dggsgout11.his.huawei.com (unknown [45.249.212.51]) by imf21.hostedemail.com (Postfix) with ESMTP id C756E1C0032 for ; Fri, 1 Sep 2023 09:32:59 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=none; dmarc=none; spf=none (imf21.hostedemail.com: domain of shikemeng@huaweicloud.com has no SPF policy when checking 45.249.212.51) smtp.mailfrom=shikemeng@huaweicloud.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693560781; 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; bh=wI8oSUZndydGb6CVvB2/IpO2AGKqTZs5j/4fCxZiRg8=; b=vsbY5/SRr/Aipef/7eyWSda6hMsm34X8LUzS0MgBoeb9WfR87cKDZMZ9BbOzhxEGIQzbpu ZQWxeQe+bMk4cSa/56FCs1vh8QMAUJdn1edy3yWfO6HiaKZADd5J+qVNarDLZCaNl5tsG3 D2XS7Ehjo89QgVNNIJZdJYMqwKfDKHw= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=none; dmarc=none; spf=none (imf21.hostedemail.com: domain of shikemeng@huaweicloud.com has no SPF policy when checking 45.249.212.51) smtp.mailfrom=shikemeng@huaweicloud.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693560781; a=rsa-sha256; cv=none; b=qBPg2eLbUckPFMKgXcbLa1apOQYcClK2ONpXKxMgHee/p1m6QZYyNWZsAkuYpKEa+tyiJ/ CdBtekDQEGVv4yzEZbz0W6hJTxdoef7ojUmLG4AMIoCZK9kHHItt0DW7XDfNzuyodMk5NZ 8ttfgJ7OgUu/Cx6PGMMNWJUffYhm7l4= Received: from mail02.huawei.com (unknown [172.30.67.153]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4RcXrM6s4lz4f3n62 for ; Fri, 1 Sep 2023 17:32:51 +0800 (CST) Received: from [10.174.178.129] (unknown [10.174.178.129]) by APP3 (Coremail) with SMTP id _Ch0CgAHJLzBr_FkCZfiBw--.14106S2; Fri, 01 Sep 2023 17:32:51 +0800 (CST) Subject: Re: [PATCH v3 3/6] mm/compaction: correctly return failure with bogus compound_order in strict mode To: Mel Gorman Cc: akpm@linux-foundation.org, baolin.wang@linux.alibaba.com, david@redhat.com, willy@infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230901155141.249860-1-shikemeng@huaweicloud.com> <20230901155141.249860-4-shikemeng@huaweicloud.com> <20230901091711.rpykbvfsnrcuwqhn@techsingularity.net> From: Kemeng Shi Message-ID: <74851ecc-93ff-1ec3-1589-f13d66d4336d@huaweicloud.com> Date: Fri, 1 Sep 2023 17:32:49 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 In-Reply-To: <20230901091711.rpykbvfsnrcuwqhn@techsingularity.net> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit X-CM-TRANSID:_Ch0CgAHJLzBr_FkCZfiBw--.14106S2 X-Coremail-Antispam: 1UD129KBjvJXoW7try5JFWfurW5uF4DCw1kAFb_yoW8tF17pa yDK3WxCF1v934YgFy7AFWDZw12gwsakF47A398K3W8AF9aya4Syry2yr18uFyjqrnrAFW0 vrsrWFWSkayqqa7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkjb4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x 0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG 6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFV Cjc4AY6r1j6r4UM4x0Y48IcVAKI48JMxk0xIA0c2IEe2xFo4CEbIxvr21l42xK82IYc2Ij 64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x 8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE 2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42 xK8VAvwI8IcIk0rVWrZr1j6s0DMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIE c7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x07UWE__UUUUU= X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: C756E1C0032 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: r6kebn9dkjk6do3k5pm7zmnfx7nwksri X-HE-Tag: 1693560779-558602 X-HE-Meta: U2FsdGVkX1+erFfYdw/uLfL68uaL9SNYpsye25jaUwlGyMWVWT9hXiN33Dgkk7LJ1Jh3V+NEcea525kgJTy7ujavCba8H/FemGcirAygeJ5cerGj+y11r0pKggJwyfRnJwQzN3ymnPnhzcYWrRIUHN2SsCYtcRaNB0bQ1Cp9gbGT+WZw31ejKNRFwl5iTO2/LJRcEynY/xGtRtOMoU4deQ7Oy5rbk17E+Jrnr2mBBSnOqVTkkotMb4YQD3+51jARpyu2LmGTugmYST4Gtfpg6GFxUBShTEnnwEUCc/1LQK99nemGOju+CIkm3oAm04DDQj+gVp+DqziaNuq8AyZB2U+SA/Y4rdtiUPaXe9Ffho5B3iNZgnVxoGbBj7bnrS5hJQ/7yZ/uMRlw55426oLNY6Y1YReIMFV9mQ9ZUIIJgdFJy/WT2aVdMl9a4KRPnqlg+uBr8wfCRpHvjpWKWHbgqEgufu/CSWY0RjVDfkSSi5zBTQ6arOVF60ivegAmY+JDG711RcLwYnhCPvYETN797CCyZDP6VPFVBcqGzI1/H8/pshu1qJzsOIx5ivTEm2hfpBAVPRra1Dq3gIxGVzfb+U4ISnIiRCb9fThNv1d1OR+bhfGVqygp9IYkMFqSnfJDgqDWcxUOVV3M6KZh6JXBO+Ij6A3SWVue/0r6irQ0FphCJreHY2DBk1w441dMV7Ze9tN601nqizhpNM/XBYOyEcTESRVlwqS7K1ffCjT+hh7feE/0RAszSCtYCu39/UhhM9PYmrg+a1cfWdnl00VL9U9xSa+Og8IoYe0UK+usGGwwO5sWkYMlUdpJVQTCqGGlHDRfktNlfF4Lyn+B+bNAgDWNXpldDVkmzVWLz32U1vmTwb6uDgLpViktsCvn0cZI7fdMuVXvWKa+QN3ZRRkst2ELi9BJJd/Fhf+Di2ZjxEgs0bP/uNal+Ktr8JoGf1Np6wzln1hjIY5GLSJ84dJ EmP3hNfT b7kP8ggBh7XsQ37ATMbWCO4LKRfwljqOaruj68j02kZdtMhHm4r9kMIQQ8lTvxKNWtsxktS2zPtiEufpd8hTr0cFrFWZ+qpqeqR9EaydrJTWAzHZa24q5EIY/jtvVkJGmT/byBpShanTif61gv+E+zAVTK7SKkQ5JaJp2A9slMVbyfD6sZY1+e3ldoIvoyqQk/iJSvlI4evH3X2M7u0IRrLEHK5Mc/9ujLYNo8NoJgEOC4xXUA/ixcPVeYiQg/6TvHp+HJ+1wrBhO1pxGJnxnq5mYiyYynN85Y2vv8yWA4UVYc/XkpGf6sd/P2QtrnkAhOFxI4uh31OdEw7L3BuB8FW7QOJoxORPgC1J6ImtTsbiSNGCMqu7Gvxk+Sg== 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 9/1/2023 5:17 PM, Mel Gorman wrote: > On Fri, Sep 01, 2023 at 11:51:38PM +0800, Kemeng Shi wrote: >> In strict mode, we should return 0 if there is any hole in pageblock. If >> we successfully isolated pages at beginning at pageblock and then have a >> bogus compound_order outside pageblock in next page. We will abort search >> loop with blockpfn > end_pfn. Although we will limit blockpfn to end_pfn, >> we will treat it as a successful isolation in strict mode as blockpfn is >> not < end_pfn and return partial isolated pages. Then >> isolate_freepages_range may success unexpectly with hole in isolated >> range. >> >> Fixes: 9fcd6d2e052e ("mm, compaction: skip compound pages by order in free scanner") >> Signed-off-by: Kemeng Shi >> Reviewed-by: Baolin Wang >> --- >> mm/compaction.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/mm/compaction.c b/mm/compaction.c >> index a40550a33aee..9ecbfbc695e5 100644 >> --- a/mm/compaction.c >> +++ b/mm/compaction.c >> @@ -626,11 +626,12 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, >> if (PageCompound(page)) { >> const unsigned int order = compound_order(page); >> >> - if (likely(order <= MAX_ORDER)) { >> + if (blockpfn + (1UL << order) <= end_pfn) { >> blockpfn += (1UL << order) - 1; >> page += (1UL << order) - 1; >> nr_scanned += (1UL << order) - 1; >> } >> + >> goto isolate_fail; >> } >> >> @@ -678,8 +679,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, >> spin_unlock_irqrestore(&cc->zone->lock, flags); >> >> /* >> - * There is a tiny chance that we have read bogus compound_order(), >> - * so be careful to not go outside of the pageblock. >> + * Be careful to not go outside of the pageblock. >> */ >> if (unlikely(blockpfn > end_pfn)) >> blockpfn = end_pfn; > > Is this check still necessary after the first hunk? > Actually, I removed this check in the first version, but Baolin thought remove this check is not cheap and not worth it. More discussion can be found in [1]. Thanks! [1] https://lore.kernel.org/all/a8edac8d-8e22-89cf-2c8c-217a54608d27@linux.alibaba.com/