Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1172396pxf; Fri, 9 Apr 2021 01:40:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwbeweLJ5Yw2OZmFivDihNBVdfXcZ0ZLxausJIoutr9dYXRFvXXoZxHoh+wSj2tYwewTyuM X-Received: by 2002:a17:906:4801:: with SMTP id w1mr15130228ejq.475.1617957628929; Fri, 09 Apr 2021 01:40:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617957628; cv=none; d=google.com; s=arc-20160816; b=0TV115x6Xs9jbr0V07RkAZg3QKbyxix/srRCwAaz5M4P13TyOpObZgMsDqKkvMj5r3 c/uGf7caQoPn5gbJW4kk13sSpGHCMLX7hV8Yc8dotAIQ6TfpBEZ025ZAuWaNn6cdU7J1 QJGrR855UEV+RcQkKyZBKuttQw00KdY0Few8NQ/34xM58pj6Me9fGP9VXdZHoil+rVL1 kLabxaJfoLR27ygvDj1/lBRNxw84UKVRCXKkdIvoIuRrL6yXTtu9pXDX0adN3lLNA/yY elZyqpA4O3hZSeftfC6HQlrLDchHgvc1/PMhgwCBkfXN4l8QcFG/qLXHt0BByLwmpwk8 lqHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=b38EUdMjQK/mcmgY6NJBafk9e5CpSme2sDAU2lU/yQI=; b=LgwvuUzjX6TAy9TgcJewd4ZhMvHG1oTvZP0RSXH2ldfUP062rsKNqKkx0gc3C+Im77 LxyzLJAerro5MT2zL2eERS5v29bzqnd4c1hz6mMPNmZYYKphL8R0UZ3ebgVWj7r2ud6P ThN8mPj6lQjK2bh2e3RzXU53nZeTHkT2rP299TC7887LeUQTRnGQNLjr0F37PqxTIChN wmJ7aEX7VwSuJw2CRhH27CbqvGKf0UTPbtpVT3FnNUzAV6vfXTCpsTFkIf95a5A7C9L6 6h4zUzL8lA5lr3KtCRLJ6r+dy0Gigllg6sw+9HP9gJSo4dBUqZRpBSjbht4R81WRt11e ZPYw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gr2si1484962ejb.65.2021.04.09.01.40.05; Fri, 09 Apr 2021 01:40:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230181AbhDIIhY (ORCPT + 99 others); Fri, 9 Apr 2021 04:37:24 -0400 Received: from foss.arm.com ([217.140.110.172]:44578 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229673AbhDIIhX (ORCPT ); Fri, 9 Apr 2021 04:37:23 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D3B821FB; Fri, 9 Apr 2021 01:37:10 -0700 (PDT) Received: from [192.168.0.130] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6BE023F694; Fri, 9 Apr 2021 01:37:09 -0700 (PDT) Subject: Re: [PATCH] mm/page_alloc: Ensure that HUGETLB_PAGE_ORDER is less than MAX_ORDER To: David Hildenbrand , linux-mm@kvack.org Cc: Andrew Morton , linux-kernel@vger.kernel.org References: <1617947717-2424-1-git-send-email-anshuman.khandual@arm.com> <5a92f302-1917-1374-a8c7-0badb9ec1b8c@redhat.com> From: Anshuman Khandual Message-ID: <2fde38dd-7556-4651-8623-321066e48861@arm.com> Date: Fri, 9 Apr 2021 14:07:59 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <5a92f302-1917-1374-a8c7-0badb9ec1b8c@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/9/21 1:54 PM, David Hildenbrand wrote: > On 09.04.21 07:55, Anshuman Khandual wrote: >> pageblock_order must always be less than MAX_ORDER, otherwise it might lead >> to an warning during boot. A similar problem got fixed on arm64 platform >> with the commit 79cc2ed5a716 ("arm64/mm: Drop THP conditionality from >> FORCE_MAX_ZONEORDER"). Assert the above condition before HUGETLB_PAGE_ORDER >> gets assigned as pageblock_order. This will help detect the problem earlier >> on platforms where HUGETLB_PAGE_SIZE_VARIABLE is enabled. >> >> Cc: Andrew Morton >> Cc: linux-mm@kvack.org >> Cc: linux-kernel@vger.kernel.org >> Signed-off-by: Anshuman Khandual >> --- >>   mm/page_alloc.c | 11 +++++++++-- >>   1 file changed, 9 insertions(+), 2 deletions(-) >> >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >> index 604dcd69397b..81b7460e1228 100644 >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -7068,10 +7068,17 @@ void __init set_pageblock_order(void) >>       if (pageblock_order) >>           return; >>   -    if (HPAGE_SHIFT > PAGE_SHIFT) >> +    if (HPAGE_SHIFT > PAGE_SHIFT) { >> +        /* >> +         * pageblock_order must always be less than >> +         * MAX_ORDER. So does HUGETLB_PAGE_ORDER if >> +         * that is being assigned here. >> +         */ >> +        WARN_ON(HUGETLB_PAGE_ORDER >= MAX_ORDER); > > Can't that be a BUILD_BUG_ON() ? Yes, it can be. Probably might be appropriate as well, given that both the arguments here are compile time constants. Okay, will change. > >>           order = HUGETLB_PAGE_ORDER; >> -    else >> +    } else { >>           order = MAX_ORDER - 1; >> +    } >>         /* >>        * Assume the largest contiguous order of interest is a huge page. >> > >