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 A9B02C00528 for ; Thu, 27 Jul 2023 20:46:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EF8C86B007D; Thu, 27 Jul 2023 16:46:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EAA376B007E; Thu, 27 Jul 2023 16:46:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CFCFB6B0080; Thu, 27 Jul 2023 16:46:39 -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 B9D8B6B007D for ; Thu, 27 Jul 2023 16:46:39 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6A495160444 for ; Thu, 27 Jul 2023 20:46:39 +0000 (UTC) X-FDA: 81058575318.24.1936BB4 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by imf06.hostedemail.com (Postfix) with ESMTP id 90DE818000A for ; Thu, 27 Jul 2023 20:46:37 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=MYvinfuv; spf=pass (imf06.hostedemail.com: domain of usama.arif@bytedance.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=usama.arif@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690490797; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cuTqSOqGGusC4+STWjmE7AEvtPXrFRozZqvR7YJO9tM=; b=lw2mXTkKGxzZr0QitUWLY1oWmslfHTpjUTHQ8YZzHxkZ589jtstho6yMs/1+4/IrUc+hfI Lz5tf9p3C8Ozs9ezE56EIOQbgB5ShaZOoj3eOA+NNYeQ8GOW99IaOBIPv4fAwktrQ6lxTQ eGjsFFWJ/rXnMRl6SFqeM7lrz3fb8jU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690490797; a=rsa-sha256; cv=none; b=HZfXqanU0f6NamOZoj30SEyVKbaqjXSx3QGhEXhNTcdnmaF7dXRryrWYDiIcqknOynDn4z in5e6C+PxVXsaCCZlj0FU+2huncI1VEj2iUMee7HowX7NR8tgktXPvuttS5dCussJtKGMy ko60Qj+FoppMwzkKuwPxDjpMi78BIdc= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=MYvinfuv; spf=pass (imf06.hostedemail.com: domain of usama.arif@bytedance.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=usama.arif@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-3fbc5d5746cso15093875e9.2 for ; Thu, 27 Jul 2023 13:46:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1690490796; x=1691095596; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cuTqSOqGGusC4+STWjmE7AEvtPXrFRozZqvR7YJO9tM=; b=MYvinfuvPzSR6QZNB+kO061wB6tpem3LnUdQ68duY2x9Lf58oM1yxzxSQNGFKohFk/ EI1cawtc+AbWjfvWpBvppmYxUriHX3hcCjpQz4l+rQHliweF9u1TU856lSFvZen+b0ac /Iqd2lMerRuef36wCLT08cM3aet4zD4TwG6rd3HjnQ3e8jECc7SC98cUtcttUQ97dfkH 2TCsQq6Rp2S9nECR41e32NdAk0O1RVp9RR8BBusJoiRVB5fSCtegpCAa22SLN6tNpX0M IR0L8UXTdcMg4LsESCJXNbMtMfHWQw91m2aMdBO9Amm4VRFmS4e2CIzdeIHkjpK5IJLK fqUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690490796; x=1691095596; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cuTqSOqGGusC4+STWjmE7AEvtPXrFRozZqvR7YJO9tM=; b=RoBWuzvCfIfwGkHQKsdJU6LV/baq7N6m+R+fp/3BBRXgzanT3SDEF/YbBrCv2b65fu 0oEiSwUEZgXJmdRSe10m0EWgYhBI0uvIyjVx4l9AuoqNQxzuB5GGFXY8NbCa0fXAPa5J oqPgIVFOId2fwhGPEvE1ZeiYzmyPlFLKKEnSSKUsxUAI3mNL2aHzh681ilxe6bE4X0d3 9u8ddqwts1AV5AYRFfOKMpfDwmH9Me45/9TImQYqDOl6NuEw95BHorRXRT8HVQXoWo/j htEtwboj6LBJblUp6bKV1f9d5nQB1Ihnx4ZqK9omh5ABNXvLA+zmlYcDJAiUY80N0dDp GxpQ== X-Gm-Message-State: ABy/qLbTm7pcpEB9PiBRljb+1GErOGAMX9TsvQBmDK7MJzVN/VxATvSw tov5xERNjResVXfHjUvyh3XbhH8TJMrylgYz8bc= X-Google-Smtp-Source: APBJJlEOKaj+kNcenpgjxlaFx5BKYk7IpRTqAJr1UfKl04jzi5rThxvhDJdy8KNbbbphmnOSEh7YMw== X-Received: by 2002:a7b:ce16:0:b0:3f9:b748:ff3f with SMTP id m22-20020a7bce16000000b003f9b748ff3fmr151792wmc.1.1690490795841; Thu, 27 Jul 2023 13:46:35 -0700 (PDT) Received: from localhost.localdomain ([2a02:6b6a:b465:0:7e3e:db9e:70fa:9ccb]) by smtp.gmail.com with ESMTPSA id k1-20020a7bc401000000b003fc06169abdsm2701400wmi.2.2023.07.27.13.46.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jul 2023 13:46:35 -0700 (PDT) From: Usama Arif To: linux-mm@kvack.org, muchun.song@linux.dev, mike.kravetz@oracle.com, rppt@kernel.org Cc: linux-kernel@vger.kernel.org, fam.zheng@bytedance.com, liangma@liangbit.com, simon.evans@bytedance.com, punit.agrawal@bytedance.com, Usama Arif Subject: [v1 5/6] mm: move allocation of gigantic hstates to the start of mm_core_init Date: Thu, 27 Jul 2023 21:46:23 +0100 Message-Id: <20230727204624.1942372-6-usama.arif@bytedance.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230727204624.1942372-1-usama.arif@bytedance.com> References: <20230727204624.1942372-1-usama.arif@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 90DE818000A X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: dc8x78kh7tsj4dj1jzs3t6a4ku6yjbsz X-HE-Tag: 1690490797-938060 X-HE-Meta: U2FsdGVkX1+DFaFCJXYVzLAN8wo5XVI/7SRTXfkFdgBSIAg9cN5Ny9wBFca981Pw3miLTEMvyUIaYNqSPlxPtD9kdCcNqtYQ9wuAKtNj1ReWKrTk3okP7TJyfr1/ilVsS5G5kBbWiEc4UrYqEdeRZlCGQnF2Qk3UJkc2HbI/qgqJbieInpnyno9cxI/L0puXSyU1XIr1nPqQg1+iW3POSjL37f3dYePf0QKDc28WqAip2TrnU6P4LiRGwaKgb0bW2OUajW0vkB49IkOyGPPhKB1Zp3gvoWytJe4lOs2Flta4q/UBB3tc6B80D7VPfPoaj8IKU5ZGjz2YExZ+UfqX4fU5AoRtEF3iPJG3SStwRbfklIxtgpCJGa2EOepLEnteByeRCC53xyFVAhF3WnZy2KAWT3IURhvKB4N/qrhpUcSyj1SV22+uYCui1UB4klvOtkj7kFZT4b15H7G8WKujD6O2doDqsYlCsf0aWuIQd9NxepTvkFHndjPv7y5h9/z6/+Uu07e4atpT/Mg2qAmSbnjZu6cRqohPTn92/8vpAAPRVLELIj4IIoEwoVkRrnve0Kqez6x6760m6lXIjjjvDa5Uw1hJyN9TYBHk224fllfW03Bx0TU9GMaPFxx/0gGk2UIIUl6w2Nykf3mllLIXFbcGBWMUNDRqvA7gidalXKhtNJ6cwkG1cAQFJnVq99Zn5k3SkNWFGxYAvQyf4GrrYUHspy//Gur3wOIEzU/3BiLMZUVP8in3WiSaQYBbXpSb78p6p8VzIMsB9ADHTsC2fmQdMfm0zSfq3PjDHXEjXvLaFzP2MdmGrUDYyb5i6Gf5DEi5tPFgbvAKaoP2UiTEl0LZoUjzBoNe5T2JVDT6I1CFZbDCKPeQcu9p6o+bMiOntVKHGjCQsEZLdu0qnj8RuZBtnV3Xccvdz6bhp+ahuZQkomU2a22if4nfq1JLGdx+hLsA9XdZbcWwUhIUHc8 +ivz6TtU c5mBXWvQ77bhDzfD6vkJq0v/WEeOESbzLi4/hneMu3HebYY2PXxwCwpqH1cf8Lg/yDVSVYCY5DHF+KXjp7a5BeAz8dImm9swLJKFZdCF73vkcVMW3aTg0ZR0V/OlucDw38VG+YIddz3NTLPC2j2qc46JoUBwmNl/o5o4sfMk/STLQ6wW8iXX+XXVpZ3IL8UZ/K9IBuIuBPldyAEK5zBaUf0fzNzPbVEipmNQ+W8+AgtUKPNV1XDHLtZsjEDcUf4owOQyPY1DafUbD2tSx0kSS2y3WXqgzxNysPko22Sp2bBvfQ/u6djnGJE/1x9Rk+l/NPGbcMBKubCIOMPl9gCop+zHNqRqNaAuViW94KC2Cm7+LHkEjuJ+TFMOLwBET6pvXya1kTWKnJISsIf8KS63vngv2AdT1kCDBU8nZkFdWqXG5lrzqwFuKLBos6d9Mloh4lESPZcXXzjfK5SFkvGkjPI54jA== 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: Whether the initialization of tail struct pages of a hugepage happens or not will become dependent on the commandline parameter hugetlb_free_vmemmap in the future. Hence, hugetlb_hstate_alloc_pages needs to be after command line parameters are parsed and the start of mm_core_init is a good point. Signed-off-by: Usama Arif --- include/linux/hugetlb.h | 1 + mm/hugetlb.c | 18 ++++++++++-------- mm/mm_init.c | 4 ++++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index ca3c8e10f24a..2b20553deef3 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -1271,4 +1271,5 @@ hugetlb_walk(struct vm_area_struct *vma, unsigned long addr, unsigned long sz) return huge_pte_offset(vma->vm_mm, addr, sz); } +void __init hugetlb_hstate_alloc_gigantic_pages(void); #endif /* _LINUX_HUGETLB_H */ diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 58cf5978bee1..c1fcf2af591a 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4418,14 +4418,6 @@ static int __init hugepages_setup(char *s) } } - /* - * Global state is always initialized later in hugetlb_init. - * But we need to allocate gigantic hstates here early to still - * use the bootmem allocator. - */ - if (hugetlb_max_hstate && hstate_is_gigantic(parsed_hstate)) - hugetlb_hstate_alloc_pages(parsed_hstate); - last_mhp = mhp; return 1; @@ -4437,6 +4429,16 @@ static int __init hugepages_setup(char *s) } __setup("hugepages=", hugepages_setup); +void __init hugetlb_hstate_alloc_gigantic_pages(void) +{ + int i; + + for (i = 0; i < HUGE_MAX_HSTATE; i++) { + if (hstate_is_gigantic(&hstates[i])) + hugetlb_hstate_alloc_pages(&hstates[i]); + } +} + /* * hugepagesz command line processing * A specific huge page size can only be specified once with hugepagesz. diff --git a/mm/mm_init.c b/mm/mm_init.c index a1963c3322af..5585c66c3c42 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "internal.h" #include "slab.h" #include "shuffle.h" @@ -2768,6 +2769,9 @@ static void __init mem_init_print_info(void) */ void __init mm_core_init(void) { +#ifdef CONFIG_HUGETLBFS + hugetlb_hstate_alloc_gigantic_pages(); +#endif /* Initializations relying on SMP setup */ build_all_zonelists(NULL); page_alloc_init_cpuhp(); -- 2.25.1