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 6B870C3ABCB for ; Mon, 12 May 2025 01:13:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B7B8E6B0096; Sun, 11 May 2025 21:13:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B2A4A6B0098; Sun, 11 May 2025 21:13:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F1746B0099; Sun, 11 May 2025 21:13:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 7CBDD6B0096 for ; Sun, 11 May 2025 21:13:53 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0740F12183E for ; Mon, 12 May 2025 01:13:55 +0000 (UTC) X-FDA: 83432484030.03.BF336DE Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by imf02.hostedemail.com (Postfix) with ESMTP id 4D5AA80002 for ; Mon, 12 May 2025 01:13:51 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747012433; 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=y0G+15qxCg0+us1FCtoJrkIXmKi44zLGMz9ZMlPwcWU=; b=SYHzrprlsLBbxNrchAmKkL9PNL2w4uIJ3VuAWI2UPWbV6rtOY0eZnrbZECg++CVL32a+wO kplK5J/FxBLR9+5C7LEfr1O/aIDAJxykkPxpA/kdRHo7kIWthW7h8i44ZjWZZzedSeoEpS wtndT7QU9RZRw3JC2WDu4t8jjdsX2sQ= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747012433; a=rsa-sha256; cv=none; b=EECUUfqfg1lKZhSPYd/B28+BIZaGF7KmCwGECJMEwvvM4i//mVzZqlPQAp199g7cZsw1Ku KP117svS0I2jNL89eYYAt3KWLjWEi2BhVJAQ9uEbcnt3lpw3aZghh4RsN+D9IPbwF4Cp7p V+FBgzRzMaNUEsjjjmkEcblOiuN6otc= Received: from mail.maildlp.com (unknown [172.19.163.252]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4ZwhNf4wyLz1Z1Xq; Mon, 12 May 2025 09:10:10 +0800 (CST) Received: from kwepemo200002.china.huawei.com (unknown [7.202.195.209]) by mail.maildlp.com (Postfix) with ESMTPS id 9DA28180B5F; Mon, 12 May 2025 09:13:48 +0800 (CST) Received: from [10.174.179.13] (10.174.179.13) by kwepemo200002.china.huawei.com (7.202.195.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Mon, 12 May 2025 09:13:47 +0800 Message-ID: <4023fc44-aafb-1895-e6db-b27f11ddc7cc@huawei.com> Date: Mon, 12 May 2025 09:13:31 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v2] mm/contig_alloc: fix alloc_contig_range when __GFP_COMP and order < MAX_ORDER To: David Hildenbrand , Zi Yan CC: , , , References: <20250421013620.459740-1-tujinjiang@huawei.com> <0a6fa00f-0e48-4101-b2ad-23c9a964b740@redhat.com> <5CD028AA-64B7-4A93-8679-AAC5869B8C15@nvidia.com> <0b4308e5-97ed-4a82-ac8c-a9061cb4d5f0@redhat.com> From: Jinjiang Tu In-Reply-To: <0b4308e5-97ed-4a82-ac8c-a9061cb4d5f0@redhat.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.13] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemo200002.china.huawei.com (7.202.195.209) X-Stat-Signature: inboptq7bar6wm9d6dkpihm8x8au6z6b X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 4D5AA80002 X-HE-Tag: 1747012431-43529 X-HE-Meta: U2FsdGVkX1+mwMnYkTOxOGsatenguMRHnKwSkS5UFTmMVHBPKdhcaeP5rTqWSc7C4lXCleRociD7gmRMC+Yf1pvSRng7LRVcy9P0bhskjSfyldW0ZbP7fSLHSnpIedL5NFZOLyoeeKZdmnBx0025SfFuPjT2LalI+tOMr61uTw8fohiYuvcUuZLOavaMXQb6dj0gnhlY7DfHwgEBYzAP1lTwCSOBJTTVHOv0ErOHRIuIeADUh2wnO6RxqyNVR4HSEPhDbO64hJ7BAn1JTqz6rPSPrLgo1dll/woeNlswqSzqmkPaQZRN6g0gIJ6G8TLZFAYIkiJ4w79bI4RauFTj2IUA3RJ1jDseSYbcKf+DLchqgl3qeBNwALfsMeiTKyiDxylfy6brsOsAS0hFQdh10/00hVlTd7CN9SHFVDvzZ/GfzPtRFKgJVOU6+kXr5keHln3FPWP6FKQr8LPMSLeC/9smv903HmoGFQXx1OlfAPd3QUnvmTCIRXoba+EffUdKjCYkARqi2iquXBWgwfYnjo1/e4fiOM0AJWew3LcDdIf5bRG7Y+3RUpipbQGIe3j2Wc05oNQQfwDFUURCeQdldfxByUyIEOUQN50KHSBArdeuqhfMZXtMinZdBkkUc3cy17Pp/u/0ujsV0dDnoHqO15RL62C4iS7gYMq+Zo6bXsBEwQ/sCJzEjYpW6BQ23G6p8gDbkNglmA/Cpam/olHClsaQYUYv8rOFqqmC8lQ7/1Uc6Yakekoo3eRTGIr1xkG0NQQw9GbmOZs6JvXnZ8NQ/DXTkoGwbIv0psGOXcrN9aq/gbbMeY5mKeH4j4KqVyGW700VJIVjympnmOIYRlR+v5cxfffvm9ZUQUUr+v/7MpjaXr1aq/u3e8o5hrzGY3/Yxw0yoIDwgx9cRpamXqgFj0jsm+Jsk5aT4br/hoFaPO++1TXYBTcTOVzZCkAJz8zXlwmmyZPqzJ9xxB4WOeQ 6NZTJW7G UTmisglaO01PTPUPQyORj3TQlPO7xOYDTuZ3DJTPjg0fGHjVBAFCdpwuCJEs1kZEJ/8h/WkmNJfbESlhg35wm7Co1MonmsyhjNKhVj2YoWcfiaBRp+iFPwqk7xHZrrp75FY0nddutrSqv8gi+mi+8Pwq2ZBsocuBA+OpxIYsdYGgkqimIvftyQxYqwBB1QHJgkeZ0R1woAuOSzqzcrBxDh7IfjWKdJJNclrtv30HJrI6njayr8nfaiUkYfwEvXXbF+cTR 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: List-Subscribe: List-Unsubscribe: 在 2025/5/11 16:04, David Hildenbrand 写道: > On 25.04.25 13:04, Zi Yan wrote: >> On 25 Apr 2025, at 6:33, David Hildenbrand wrote: >> >>> On 21.04.25 03:36, Jinjiang Tu wrote: >>>> When calling alloc_contig_range() with __GFP_COMP and the order of >>>> requested pfn range is pageblock_order, less than MAX_ORDER, I >>>> triggered >>>> WARNING as follows: >>>> >>>>    PFN range: requested [2150105088, 2150105600), allocated >>>> [2150105088, 2150106112) >>>>    WARNING: CPU: 3 PID: 580 at mm/page_alloc.c:6877 >>>> alloc_contig_range+0x280/0x340 >>>> >>> >>> Just to verify: there is no such in-tree user, right? >>> >>>> alloc_contig_range() marks pageblocks of the requested pfn range to be >>>> isolated, migrate these pages if they are in use and will be freed to >>>> MIGRATE_ISOLATED freelist. >>>> >>>> Suppose two alloc_contig_range() calls at the same time and the >>>> requested >>>> pfn range are [0x80280000, 0x80280200) and [0x80280200, 0x80280400) >>>> respectively. Suppose the two memory range are in use, then >>>> alloc_contig_range() will migrate and free these pages to >>>> MIGRATE_ISOLATED >>>> freelist. __free_one_page() will merge MIGRATE_ISOLATE buddy to larger >>>> buddy, resulting in a MAX_ORDER buddy. Finally, find_large_buddy() in >>>> alloc_contig_range() returns a MAX_ORDER buddy and results in WARNING. >>>> >>>> To fix it, call free_contig_range() to free the excess pfn range. >>>> >>>> Fixes: e98337d11bbd ("mm/contig_alloc: support __GFP_COMP") >>>> Signed-off-by: Jinjiang Tu >>>> --- >>>> Changelog since v1: >>>>    * Add comment and remove redundant code, suggested by Zi Yan >>>> >>>>    mm/page_alloc.c | 20 ++++++++++++++++++-- >>>>    1 file changed, 18 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >>>> index 579789600a3c..f0162ab991ad 100644 >>>> --- a/mm/page_alloc.c >>>> +++ b/mm/page_alloc.c >>>> @@ -6440,6 +6440,7 @@ int alloc_contig_range_noprof(unsigned long >>>> start, unsigned long end, >>>>            .alloc_contig = true, >>>>        }; >>>>        INIT_LIST_HEAD(&cc.migratepages); >>>> +    bool is_range_aligned; >>> >>> is "aligned" the right word? Aligned to what? >>> >>> I do wonder if we could do the following on top, checking that the >>> range is suitable for __GFP_COMP earlier. >>> >> >> The change below makes the code cleaner. Acked-by: Zi Yan >> > > Jinjiang, can you integrate that into your patch and resend? Sorry for late reply. I will do it today. Thanks for review. > > Thanks! >