From patchwork Wed Sep 27 09:44:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kemeng Shi X-Patchwork-Id: 145107 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp2329563vqu; Tue, 26 Sep 2023 19:22:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEiqgfHZ4/FrHF7CsTeWS/cSCZzOAfTsE5a/FjSQ2smoevPoGwa7nx+LK/7sCCFsIs9vY9C X-Received: by 2002:a05:6870:9691:b0:1c8:bca6:1f2a with SMTP id o17-20020a056870969100b001c8bca61f2amr1041972oaq.3.1695781321544; Tue, 26 Sep 2023 19:22:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695781321; cv=none; d=google.com; s=arc-20160816; b=TMDvsO4TYQUAu3jrEtdz9SEkmxIPgjIS0geVn/Tu1M6Yrfo6oN2En4Il0UCHdgPuVP OiA0Zj0DkemvntyIY0/VMlWwF8ZLfcSYTT6Ul37iaPs/xCke0WVuu+2ItcGjBHSgJQzG 6+tjRLnfpZV0LjRLEk/LdiCGpsncYZ9SpUn1/1L2+Eyhr7k9FUKGTyksE+d07QreQZ78 x55GLNx/e0BqKIS3VA+HuNtMJWL1dQg8n34WV+TsfCspbG3jxvdS7m3zSSLokEYsP3ne YGZfnEdrm+6wczxSCy6pYwvSZPzR4OLLWwtLMRj8D8JdNJniwxHCW245oNudc+PbIBWy NBxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=HxsZAEkbpQ0mK0O2i45b4f5PSk1kawwXd3Gu3oXmepo=; fh=FPOLHMy3WNmsotXE752d1f/EDAavI5JB/ZCx9wiEcQM=; b=tQ8Ck4Y3rGhfEA/zfWsKY0erIMNMxKS2IyB91QiTcEdut16vzOrWNxOc4eJgxJOPlC lxni6JpE2pEmk4HScLp/TgIOZlUNgLwsbHcfNH0kGdAgkysZNnxfYe64Iuc+v3Qq/jf8 q+tuIVRdrnMRgWw9pXccOqeLI+7dci5Jo+mvASK4efjybVN9AUTUzAtpO6BY46TZ8Q3F AL5N/GXTO/Rodkn/B78nKImHOi2pkzVFkrQ0HoVRxDgS7FnbCwf0jQIGOOXg8rMwuG8A iVr/AlEIa4cXBtVJDtnTrfiRXEg8QTE+oVdo0XKhmMB8f15ruktXymIXj1eHslfOoWLc EQXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id i67-20020a639d46000000b0057c3103bf15si13474575pgd.277.2023.09.26.19.22.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Sep 2023 19:22:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id B1C2C80AF27C; Tue, 26 Sep 2023 19:21:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235525AbjI0CUx (ORCPT + 28 others); Tue, 26 Sep 2023 22:20:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230121AbjI0CSw (ORCPT ); Tue, 26 Sep 2023 22:18:52 -0400 Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B8FE140C0 for ; Tue, 26 Sep 2023 18:44:43 -0700 (PDT) Received: from mail02.huawei.com (unknown [172.30.67.169]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4RwKD60djlz4f3mHY for ; Wed, 27 Sep 2023 09:44:38 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.124.27]) by APP3 (Coremail) with SMTP id _Ch0CgCnB1cGiRNl7AWaBQ--.25675S2; Wed, 27 Sep 2023 09:44:40 +0800 (CST) From: Kemeng Shi To: akpm@linux-foundation.org, naoya.horiguchi@nec.com, osalvador@suse.de, willy@infradead.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm/page_alloc: correct start page when guard page debug is enabled Date: Wed, 27 Sep 2023 17:44:01 +0800 Message-Id: <20230927094401.68205-1-shikemeng@huaweicloud.com> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 X-CM-TRANSID: _Ch0CgCnB1cGiRNl7AWaBQ--.25675S2 X-Coremail-Antispam: 1UD129KBjvJXoW7WFWrWF4DJrWUAryrZrWkJFb_yoW8CF47pF yIkw1jkws8G3y5Ca1xAFZFkr1rJ3909FWkCryxXw48XwnxJrW2kw17trnF9F18GF9rGFW5 JFs0yryrJa1UAFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkIb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M280x2IEY4vEnII2IxkI6r1a6r45M2 8lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_ tr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26r xl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv 0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z2 80aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JMxAIw28I cxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2 IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxGrwCI 42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42 IY6xAIw20EY4v20xvaj40_Wr1j6rW3Jr1lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2 z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU0miiDUUUUU== X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=-0.8 required=5.0 tests=DATE_IN_FUTURE_06_12, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 26 Sep 2023 19:21:02 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1778112538655592399 X-GMAIL-MSGID: 1778155594888766124 When guard page debug is enabled and set_page_guard returns success, we miss to forward page to point to start of next split range and we will do split unexpectedly in page range without target page. Move start page update before set_page_guard to fix this. As we split to wrong target page, then splited pages are not able to merge back to original order when target page is put back and splited pages except target page is not usable. To be specific: Consider target page is the third page in buddy page with order 2. | buddy-2 | Page | Target | Page | After break down to target page, we will only set first page to Guard because of bug. | Guard | Page | Target | Page | When we try put_page_back_buddy with target page, the buddy page of target if neither guard nor buddy, Then it's not able to construct original page with order 2 | Guard | Page | buddy-0 | Page | All pages except target page is not in free list and is not usable. Fixes: 06be6ff3d2ec ("mm,hwpoison: rework soft offline for free pages") Signed-off-by: Kemeng Shi Acked-by: Naoya Horiguchi Cc: stable@vger.kernel.org --- mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 191e552a4c83..e18e0e20eff8 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6691,6 +6691,7 @@ static void break_down_buddy_pages(struct zone *zone, struct page *page, next_page = page; current_buddy = page + size; } + page = next_page; if (set_page_guard(zone, current_buddy, high, migratetype)) continue; @@ -6698,7 +6699,6 @@ static void break_down_buddy_pages(struct zone *zone, struct page *page, if (current_buddy != target) { add_to_free_list(current_buddy, zone, high, migratetype); set_buddy_order(current_buddy, high); - page = next_page; } } }