Message ID | 20250218181656.207178-16-fvdl@google.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 93E81C021AF for <linux-mm@archiver.kernel.org>; Tue, 18 Feb 2025 18:17:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB18F280183; Tue, 18 Feb 2025 13:17:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E13CD280181; Tue, 18 Feb 2025 13:17:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8BF7280183; Tue, 18 Feb 2025 13:17:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 9C84B280181 for <linux-mm@kvack.org>; Tue, 18 Feb 2025 13:17:33 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 49EDD1403FD for <linux-mm@kvack.org>; Tue, 18 Feb 2025 18:17:33 +0000 (UTC) X-FDA: 83133873186.12.7FAEB93 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf09.hostedemail.com (Postfix) with ESMTP id 78C2C140021 for <linux-mm@kvack.org>; Tue, 18 Feb 2025 18:17:31 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Rz7kpm+R; spf=pass (imf09.hostedemail.com: domain of 3us60ZwQKCG8SiQYTbbTYR.PbZYVahk-ZZXiNPX.beT@flex--fvdl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3us60ZwQKCG8SiQYTbbTYR.PbZYVahk-ZZXiNPX.beT@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739902651; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Cqd9IxTofwawmp1dYCujhov0pMRv31D5VOrM7Wa0ZrI=; b=FtH+oOlD6FLk0bvt3bXw1EcS4MwR7W+PnFieG9EuLTdJpWG0y0QdflzV/bTjc1TNEgP3Qz Uo58TO00JYKZJybtwb8RESi1EZ8xi5GKn1j1EJg9XQlA/m+oz52l8HMg039WSiYxSR3Kn0 vAJneXES9NAB/+naKi/WgqSYEmLFADg= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Rz7kpm+R; spf=pass (imf09.hostedemail.com: domain of 3us60ZwQKCG8SiQYTbbTYR.PbZYVahk-ZZXiNPX.beT@flex--fvdl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3us60ZwQKCG8SiQYTbbTYR.PbZYVahk-ZZXiNPX.beT@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739902651; a=rsa-sha256; cv=none; b=6cn3PwTAVkJXQrh3YKcFzlYqX7ZrvQuSrCdcQGU8gnRqpCwCNzhCg15jUmCaGaQzvIEn2C AWMmjc8kP76n/xwlb4zoRw5icjGgJ6tOFU2Vd+mZ4qChaSsPuRrw9bVUQR+cj9BDhO8nG2 6XOHziSl5WNdN0lH48Wqb6tGONd3r5g= Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-22114b800f0so89332525ad.1 for <linux-mm@kvack.org>; Tue, 18 Feb 2025 10:17:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1739902650; x=1740507450; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Cqd9IxTofwawmp1dYCujhov0pMRv31D5VOrM7Wa0ZrI=; b=Rz7kpm+RxnsLrhttxWRoFKQDs7zS16egkzfU17mLxVLmWrH+0ZQi2/7/l6kQkHrdpj tnTlxqBhSaSLuKBfEoc/Rm4GHY83qoYA1d7FOmsW3jR1TfiAGU0W5HgG8fvVltT5kob7 nJDRjlix7nYkw3mFRX9l52c9dsu2qE26/SfL5FIxuoc5XHC4cF4E3aCMmWS5452m+U2a zGlQ0spGVd+p2jhURS8A0pKE7EAYNL1iX1PcmyEGvuf6gDLe8BDIBTerzApPqjMRfi5G SLWWukAbdyAV6a8yHY4BePofUspj+2vUkKqfp960uuaXIrl6wntLoyWwgSXsZrBqVxXS VILw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739902650; x=1740507450; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Cqd9IxTofwawmp1dYCujhov0pMRv31D5VOrM7Wa0ZrI=; b=Kbmh1kafkwp+tEs9Xg8nDyEpXyy2COpbEy51VVt/k2h+N4TA+nin6L7DiTrAmSQUR8 whOaLBFswg4/vfLgyp0P3w3QyPIFgB7VH5Vlh+IHoeiY1OMguRz3Zi2/nQTLFk0oITNP 9Z2139JdC6HFljGE24FXJUbAl9FxihMif2x6nGtR7/40T5twlQQ9HHtYi/q4Ucr0K+2+ DXEhvQdj73ExzH2YUfu76BBJwMPji8cOxU2n4Lo9WOwS5LTlleu/ogMmBaAhP+1LKhYG 7tFy7Z7a5JOur2XraPG6fyNPe/7+qNoTDtZt8+gv6dDkwTMrOPvAv7LcNGZ+RQc/Bhou 3BQw== X-Forwarded-Encrypted: i=1; AJvYcCWYKD77BGyODlUn0MwYkfVyD4vCELT6gMcYSHTWA3XWtIEeEFvKiHurES48Z4DZ2TlKlHz1tRvo8Q==@kvack.org X-Gm-Message-State: AOJu0YzMcpcv3WjbwZy11Pmiu3z+DEtQFxNWCZkGXl01GtHUOXlHIU13 n20KAt33V/zOD1DJaFAd/F6W4cuz7/RH+lOHS0BorhZsOoPcJn5cUDhu0FzeFC588fsPRQ== X-Google-Smtp-Source: AGHT+IFjTD0B6vnesK387z7IZw++9KQQ8VuMcl6CQdkIwwGo2IRYNL3TOstEEppR/SOlo9oZvDErqS3A X-Received: from pfva19.prod.google.com ([2002:a05:6a00:c93:b0:730:94db:d304]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:72a6:b0:1e1:9ba5:80d8 with SMTP id adf61e73a8af0-1ee8cc162e9mr23545819637.33.1739902650491; Tue, 18 Feb 2025 10:17:30 -0800 (PST) Date: Tue, 18 Feb 2025 18:16:43 +0000 In-Reply-To: <20250218181656.207178-1-fvdl@google.com> Mime-Version: 1.0 References: <20250218181656.207178-1-fvdl@google.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog Message-ID: <20250218181656.207178-16-fvdl@google.com> Subject: [PATCH v4 15/27] mm/hugetlb: deal with multiple calls to hugetlb_bootmem_alloc From: Frank van der Linden <fvdl@google.com> To: akpm@linux-foundation.org, muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: yuzhao@google.com, usamaarif642@gmail.com, joao.m.martins@oracle.com, roman.gushchin@linux.dev, Frank van der Linden <fvdl@google.com> Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 78C2C140021 X-Stat-Signature: 9p84mhtmgx4zztnwsyycy4uuigc65xhq X-Rspam-User: X-HE-Tag: 1739902651-645888 X-HE-Meta: U2FsdGVkX18k7+WSzhzg2tVDIuNL7Qcu0htfblVkCh/1RuxPSMAnSTmx8IdMrmai3ZpciOTyDVBMD7uGCl7KOZDVvJwpArPrMYSHYZsUHt6bGQZ+2ieTUKROjm7KPAhHR5f2JylXiBPqaELRNSyGKrb+wXdMIw4OSRMyJoJseLbTQyzROEQmSTrYwCOU8/KxOac6VkZD1eYw1tBmBqcFhNAlNf4VpEVj1OIO0BWxAxPq0G9jcfRjlO1rC4+MJDHygF3jALyw6rONwqo973zMhMcOcIxdy+mAN9oaxkeKRXL/w0S5d5eSOjW8OPxUoMpahGJqMCWTVAuXMcoWFfitam4hTfR3b+5X0nccvgSjcjjxxPp01vTGZ05R0JQwDY+kUSRlI3oP1H21sE2uBnPov0EO89P1s02tktbCKy57GUcnebDmG+sl8W/nnUBlMf54VWSmcBab8eB2kHwUklQbBKjRcKe6Y6SwubQKznoJPWDm9OKibFapXxpETFwEmCHb5kpYNL7xoSTkeDYAjKDIQCuos8hz2wyLK6FWHxOxyitcouveHWcAbHcVoaN/Pu1zJ2LepEAY7kHIk2STwjJVZcLlQgvEIRWcfYy57rZtYTRZvUTtKtsURcyaDohWiBHq5olNAL6M5c2a35A/8lD0S10RYSv3gSc6tyJR5rqqcbZ2ZMikm+Br1jFCBR+kkSAigVjrDS0BiiAULW02CIQruxIHNIR0UZ+PFvmLzSswRYTGdKs+JokZTgiMDur096i+Rwr/TgllxKEusICrfY1PkDBxhIyfcqXC8R1ZS5ld+MwQ5JZWiIBcq/SW0Q7DHzGo80WQ4UhPBIc4D5KU+oMQmMthzKUpXyKOcNKXW3FyaiLmMEJ/hCqKZCxlAKF3W7/l9MGBw+ZewKuND0SUmkgckUGcPjZyyqI+vX/4IRnlabUYSve7kYFSEAExJ/Y8dSenGuZhgsPsGnAu5QOZ7h/ 8GN5/r78 RwZb5bbm2Ue1q3hN4e8PQ+MAXU3L9Z977SaDcZXsnVi/Fe3+XKUdVXXAfL95xvQCdJYGoVlzjINLlGQokzWjzDf4FZ/I3O5AIioZyB4JsBtyEyVkyNBPYYTzAyqKPypuw835AP9JlN/ojkAMjCfgv0f4mxyC7ibTVYGpNmtpwD/K0ZiwCs27hC5OfWELnI2XNCWAms+IlCiP5ThpvLYfQakamceHyBFJsFxDdgdL0Rn/k3YPpy8E9q8gzu3WRa5xEMJcID16Fyo0LisfJSu/WLtCJzZmhXfS5ygeFEZsBJR7ezMxZZHcZUEVdW/fPWKJfhBH8Z2BPXNCJAGnr2sUF+Otpk44W6fhxPCAZCNlftRtPN1OlQnAz2fSIy1EYmlcRLIaWwKopdVDkSzvlw70tb/ElosF67rT9ttyi7MrI7rEVT5QGyyP9TYLy0NEXUq0DXVSeHjPNnFrSd9DmHunOZ9PWzBZkln8u74Dp2rnpl1Mj7wDXVa0mYMXkLm1uDqD0d+59/PxoC/TAXkt0qZAXBrLgcU708nUyxPnXKLOuYSZ0jiJIN5J7rcr4kpXPqDkLP4kdFqtTL95nXI1Mg9zkqGnqXv9tdnmUsVnoUitWmj3GiQoOqnrs3RWHaQNanX6ow8btRtrM0Vd3Hic= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000009, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
hugetlb/CMA improvements for large systems
|
expand
|
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 9cd7c9dacb88..5061279e5f73 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -175,6 +175,7 @@ extern int sysctl_hugetlb_shm_group; extern struct list_head huge_boot_pages[MAX_NUMNODES]; void hugetlb_bootmem_alloc(void); +bool hugetlb_bootmem_allocated(void); /* arch callbacks */ @@ -1256,6 +1257,11 @@ static inline bool hugetlbfs_pagecache_present( static inline void hugetlb_bootmem_alloc(void) { } + +static inline bool hugetlb_bootmem_allocated(void) +{ + return false; +} #endif /* CONFIG_HUGETLB_PAGE */ static inline spinlock_t *huge_pte_lock(struct hstate *h, diff --git a/mm/hugetlb.c b/mm/hugetlb.c index f9704a0e62de..ea5f22182c6e 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4906,16 +4906,28 @@ static int __init default_hugepagesz_setup(char *s) } hugetlb_early_param("default_hugepagesz", default_hugepagesz_setup); +static bool __hugetlb_bootmem_allocated __initdata; + +bool __init hugetlb_bootmem_allocated(void) +{ + return __hugetlb_bootmem_allocated; +} + void __init hugetlb_bootmem_alloc(void) { struct hstate *h; + if (__hugetlb_bootmem_allocated) + return; + hugetlb_parse_params(); for_each_hstate(h) { if (hstate_is_gigantic(h)) hugetlb_hstate_alloc_pages(h); } + + __hugetlb_bootmem_allocated = true; } static unsigned int allowed_mems_nr(struct hstate *h)
Architectures that want pre-HVO of hugetlb vmemmap pages will need to call hugetlb_bootmem_alloc from an earlier spot in boot (before sparse_init). To facilitate some architectures doing this, protect hugetlb_bootmem_alloc against multiple calls. Also provide a helper function to check if it's been called, so that the early HVO code, to be added later, can see if there is anything to do. Signed-off-by: Frank van der Linden <fvdl@google.com> --- include/linux/hugetlb.h | 6 ++++++ mm/hugetlb.c | 12 ++++++++++++ 2 files changed, 18 insertions(+)