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 803C4C001B0 for ; Fri, 11 Aug 2023 03:13:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D51F6B0074; Thu, 10 Aug 2023 23:13:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 15E8C8D0001; Thu, 10 Aug 2023 23:13:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 025DD6B007B; Thu, 10 Aug 2023 23:13:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E82176B0074 for ; Thu, 10 Aug 2023 23:13:27 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A89401A0383 for ; Fri, 11 Aug 2023 03:13:27 +0000 (UTC) X-FDA: 81110353254.30.4049936 Received: from dggsgout12.his.huawei.com (unknown [45.249.212.56]) by imf05.hostedemail.com (Postfix) with ESMTP id 42E7D100007 for ; Fri, 11 Aug 2023 03:13:23 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=none; spf=none (imf05.hostedemail.com: domain of shikemeng@huaweicloud.com has no SPF policy when checking 45.249.212.56) smtp.mailfrom=shikemeng@huaweicloud.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691723605; a=rsa-sha256; cv=none; b=vDBJPr0nIsk+YgPLMzE5muxOLMnOkGDvIM7v4RyLRssMJURyA8lsoM+Qd3FSL+R4k/WNTI hgvDKlDaOuhFmuCl1NxLWqU2fJfWj533mAKkISYQliPXFxZXT5tWnvx7C9QeliYR96kKov 0ziCgXc2KcgaRgkqRK5qO+xgLpmvJ38= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=none; spf=none (imf05.hostedemail.com: domain of shikemeng@huaweicloud.com has no SPF policy when checking 45.249.212.56) smtp.mailfrom=shikemeng@huaweicloud.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691723605; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7aMd8IQO34s42zzLe0SmML8hVpVzrPUfIQAifed3EFM=; b=6Lpt9NAnAE3bsSMdDCY0fqjaHpNu9Zs0pWP+1eAUzTxyKom1vJt2/ntx+U2E3SPLUAYdhe MLmvqNPU1n1g5ul5jA4oYxCJQMWH4fmrOwZoN9k0VKb9Th4AoQb0F46B6+4887Cf6wEuE1 GyZcZa15XcqpjZW8PKQezHfTeytNx80= Received: from mail02.huawei.com (unknown [172.30.67.169]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4RMTQ30Bmnz4f3mJh for ; Fri, 11 Aug 2023 11:13:15 +0800 (CST) Received: from [10.174.178.129] (unknown [10.174.178.129]) by APP3 (Coremail) with SMTP id _Ch0CgCXu8NMp9VkuWKfAQ--.41702S2; Fri, 11 Aug 2023 11:13:18 +0800 (CST) Subject: Re: [PATCH 1/3] mm/page_alloc: correct start page when guard page debug is enabled To: David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, baolin.wang@linux.alibaba.com, mgorman@techsingularity.net, willy@infradead.org References: <20230810095309.3109107-1-shikemeng@huaweicloud.com> <20230810095309.3109107-2-shikemeng@huaweicloud.com> <6c766c69-21c5-9f52-a172-18083edcb2c5@redhat.com> From: Kemeng Shi Message-ID: <35c924a8-1232-a460-6a25-43827c6d6ef8@huaweicloud.com> Date: Fri, 11 Aug 2023 11:13:16 +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: <6c766c69-21c5-9f52-a172-18083edcb2c5@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-CM-TRANSID:_Ch0CgCXu8NMp9VkuWKfAQ--.41702S2 X-Coremail-Antispam: 1UD129KBjvJXoW7Zr4UWw4xJw1kCFy3Gw4UJwb_yoW8tw1rpr 1Ikw1jkrW5G395Cw17JF1DCryrJr4YgaykCr1xXa4UJw43Jry2gr17XrnFgF18Gr4xGryU Jr4qyr1rZr17ArDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUyKb4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Cr1j6rxdM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I 0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40E x7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x 0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0E wIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E74 80Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2Ij64vIr41lIxAIcVC0 I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04 k26cxKx2IYs7xG6rW3Jr0E3s1lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY 1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUrR6zUUUUU X-CM-SenderInfo: 5vklyvpphqwq5kxd4v5lfo033gof0z/ X-CFilter-Loop: Reflected X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 42E7D100007 X-Stat-Signature: x9ehipjaz87ahxgr5ki83j7giiiymc38 X-Rspam-User: X-HE-Tag: 1691723603-489430 X-HE-Meta: U2FsdGVkX1/AfephL+i3hi6nTkp/aUdbOQQwGGPbSPIhnn38zcGWcqvU+QadqeQpez7pv80i3j6pZu9+RDhhNmY/UGFWeRRj3qG0rNbS0xn53wnJwwTuUy+q9jT2itXgnl7TVNb7QfM57iRoqMSPrixH1lBuFnbcKDI7JPymKElMv5U7AIDjd7UIFbw8trSNKfLqsLPSci9bFgDTIggR/ewawPY3Xc87x2md8kfthFpAfEceTyIwuoqgd14TuGfSWe3dnht4hjA3msvRgv7FCK38HTtOWSfY6BF9uQOpRBbVeaHm+iUJZP0t0HIeklu5Szs0uk5Pb6UztTQcIsiRSUl+nXiDyNGllr6PniYInY1Kf8ftSAio/mdyew3buhL3gupCGrLGTTipLo55F2GesEk/yyXejG4Nw9H1o13kbCwGMQ4ql/U7/LcbOThOpO9OwJ8y4gEximxwT2hnIITPQLGZWDq1OPaxXuBQuS8a9SsCHSbFxzOau+fkB98PdLL3p2lNyF1Bqu8rOmtS4rjIsim40DckwcyCaA0q7VKwhrj2ZIfYZgHIMac5uklltzhg4RFxTNplG2grSsrZJztcrEQEFIwKN90MX1nI7OcsKyeTJ7WR6nd55bPXOwGm0zO3y4PIQXuqOhZNElDL+YA5nqXMQzX4NV+T37jq41AsoyypM1Fy+PWifDCeYrWzEEKxzHucEsbJHLw7pe1AgGRuBVUVEB5TWmPr2GMc1w7HiQDCn7l7zIh/TQBJE+/ymgRPAjxrldl1QOXxUQky/DbsaCRO8hNbZJKvW3Cgb5wbJxiP3vpkLBO4Z5B8mVrOotHQWTa+Gky8za8GY6g5amkd6jSQUQ6J2yOrTHzlLfaaDP01D2TVKytTZs6eF2fbiN5GhmxHd0rEI/ZOInvhvyzcUlwmXDg4EYZ+h8VS26JtmGFAkU+TiRpdypAtqXsVWAzC5gMJ7ZpkYHfao8VHXlU UanSsELh FAPu+AtKZNm3GhjVA1sGKJVVHHArDz5H9UWXRX9+6pZzbatYgwevXCoYEQYfKYRnXiWjOSRo+CqCOI7k4nnZwE76a7ZJJqro1Vo+lGrkOvpMzXqdLgBb+2AC4mWbCdDYTCazlj7qd4LF0o/j//jvb567CudJF9duiOCYrTXWDDq3uD+cdgIHkwGGWyjq/gFHcwjJIRNE+NnLdoPRMDo0rNqSyBtF5zDWsedYZeZsHQWVe7kxPw0HSq3dDI9JCHBCJCQJaBahvTdkGt6uLUNoG7/21BRN8uR3Dqd9X 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 8/10/2023 5:10 PM, David Hildenbrand wrote: > On 10.08.23 11:53, Kemeng Shi wrote: >> 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. >> >> Signed-off-by: Kemeng Shi >> --- >>   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 96b7c1a7d1f2..fd93d1396ccd 100644 >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -6557,6 +6557,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; >> @@ -6564,7 +6565,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; >>           } >>       } >>   } > > Is this worth a Fixes: tag? > Sure, I will add this in next version. > What is the user-visible result? > As we split to wrong target page, then splited pages are not able to merge back to originial 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.