From patchwork Thu Feb 6 18:50:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank van der Linden X-Patchwork-Id: 13963553 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 745F7C02199 for ; Thu, 6 Feb 2025 18:51:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B2B9280005; Thu, 6 Feb 2025 13:51:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 23A4A280002; Thu, 6 Feb 2025 13:51:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 018AB280005; Thu, 6 Feb 2025 13:51:27 -0500 (EST) 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 C05A3280002 for ; Thu, 6 Feb 2025 13:51:27 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7A521C1408 for ; Thu, 6 Feb 2025 18:51:27 +0000 (UTC) X-FDA: 83090413014.01.93CE20A Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) by imf18.hostedemail.com (Postfix) with ESMTP id A79A91C0009 for ; Thu, 6 Feb 2025 18:51:25 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zy2k50f7; spf=pass (imf18.hostedemail.com: domain of 3rASlZwQKCI0wCu2x55x2v.t532z4BE-331Crt1.58x@flex--fvdl.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3rASlZwQKCI0wCu2x55x2v.t532z4BE-331Crt1.58x@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=1738867885; 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=hzoPqdOikoObjXWU9SvKmiO4GzZxuupFnL9M3tsuTWc=; b=mndFF4JjBjv8/6kVeOonF5n7fjaxOaw9VeoEBzzub1+bBaIJyVpnnvY86hkxW3S4rvyaLi MaNQ5w7T1fvgiEt4KWBsb7j2yV0ah2IenXiJdXxDR9j5TXF2O2WWof1+ce+YHj1fIw5wVj WRbm3IUMqUsBGTCqWfab7O2K8YdtK2c= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zy2k50f7; spf=pass (imf18.hostedemail.com: domain of 3rASlZwQKCI0wCu2x55x2v.t532z4BE-331Crt1.58x@flex--fvdl.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3rASlZwQKCI0wCu2x55x2v.t532z4BE-331Crt1.58x@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738867885; a=rsa-sha256; cv=none; b=aWkW/FI8m/eo+jVn8+Ba46gqPsYdUBPT5Y6Uj1jaJDitcXowURL6XB14a6AFe/8Azt1S1W 5JIdCQdAgX9NFaIZJJnFsC10jvLdyUPf9sTIJ2xJIEtVRLysQdQTZcXQJt1HU5R7qKkXUD JF71e5C0TlYFe4erF8t0+rDT6p78gwc= Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2fa0204ad21so2418053a91.0 for ; Thu, 06 Feb 2025 10:51:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738867884; x=1739472684; 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=hzoPqdOikoObjXWU9SvKmiO4GzZxuupFnL9M3tsuTWc=; b=zy2k50f7MEJc/j6GLa9rL5aVpSQyKC6IP/PWgVcvlxQVHzwYEKSLYc+dhMxi7LUfDv Xp34TZANb/dbMzzKT3yKhETd2dsNAsMvHMfA+vzMEm17/YUI1ABG8NGYhGTikCepCIhI uXNcrav6FsbMyL2FR+OrVuHil+IbIV0ncVUrS61qh3Eq/XrgPA4KBEz8khHBcoMABkye ffUfK/TC8QETmMvHCvK2aiM7rdmZcp4MFGKm/wgnGjnTwPfy84WzWXNIu/4Mog6jF9m+ VOeiIqioT9rlMcSzBiJEDKrOsJsL+ZYTPFfU7A5ruGUiDMfFxCYX/3jOcYAL+0Wor3oJ SR6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738867884; x=1739472684; 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=hzoPqdOikoObjXWU9SvKmiO4GzZxuupFnL9M3tsuTWc=; b=fd9ZHuIb5rP7GXfELQS+vNJ1y30sfIQaev0XWvaRMXVzIiQ43Y9VDe5y7QVE4ayQyb tZglnkxztc7geyB7IEF6WdsujUBSoAZmhinc6QR8a2gyUJ3vfvf5caT9wZNsYYzIeXNb h/fOyM0evcclv4VpGd6CEuADaD4Y7Sp8mUMaGFHISJqGRgpN/UmBf8to8ch2YUSvxcRy 4dizqvrKNdJEToaxrAK6Hd2doS34Kx1dVnt9jBvjj9T8OPJYb75zSszTx8gG2B7lf/ul AG50j095h2ulm8YjpVdB90DqioE8hcki0eI5mUsxgiPPZe9mcJ0Tf3ZSmC3sztHMtvXc ezVA== X-Forwarded-Encrypted: i=1; AJvYcCUoZYNIUyRHrv/Rqvi0XxK6oDmxWJKZ8XW/NQJAvpLJtFdeRggj18UD6nktbXQ2SQQ1GyoZ6Gv4pQ==@kvack.org X-Gm-Message-State: AOJu0YxAY8KFU6wIXKu89t9UPc67K9+g7aGKOd85EtFqIGaz9K784+3z YGjvJgCgj4vRtC6pAgkur7ljr+JGiKvip/aoagXcg9KLvkNnc1zHfFg0WBkxEjQFU9bbhg== X-Google-Smtp-Source: AGHT+IEL2yhkPaKLLzs2ZR25Ntw2PD6TefD2snZgeFGU7MfGyptfuCLCB6W/h56WjY/xARRU7WJJptnX X-Received: from pjbpl9.prod.google.com ([2002:a17:90b:2689:b0:2ea:aa56:49c]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3c0e:b0:2f2:ab09:c256 with SMTP id 98e67ed59e1d1-2fa243ee52dmr179111a91.33.1738867884627; Thu, 06 Feb 2025 10:51:24 -0800 (PST) Date: Thu, 6 Feb 2025 18:50:45 +0000 In-Reply-To: <20250206185109.1210657-1-fvdl@google.com> Mime-Version: 1.0 References: <20250206185109.1210657-1-fvdl@google.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog Message-ID: <20250206185109.1210657-6-fvdl@google.com> Subject: [PATCH v3 05/28] mm/hugetlb: fix round-robin bootmem allocation From: Frank van der Linden 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 , Zhenguo Yao X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: A79A91C0009 X-Stat-Signature: qggaexm81nb1ft57dx48jmcugjqkg7ko X-HE-Tag: 1738867885-864575 X-HE-Meta: U2FsdGVkX1+rXEWEWLDDJeypxJg8ZyCXetSVYVx//JPmE7KZQ4i/iS8OtQYj2pIUEDdFulqV2OzhNRTYjiJ03WuEqLDAsH1gUMFzei2GSuXvc8OB6QV4IzhXdDMnLBWqULuKtrex3b5GUrKGc1mUTxFZjjtTl3l9d2SII1I78auv8as6YIKTWo1Of2aYQvc3gqvGfUhv2PkWiMO2mjhUEvLxMsBHVx0Rj0QEzPqwdPfYur+QvAIAnVS4PpIWyniuNBf9QNMIod5sjRQd9Yqrpbp23PRFud8XmVGU6FYP/yOdFmq2yJV0jozoa+cKAeoSyRjPAWorDxPaHSdQS5TZMfQV2OwdN8jJwstfQb3Z1lduEkkEETBnz8fK8YM8jUFmk9qqtMDT/m+RRRQ46KAZaLjpWVomYEkWdxq6TgEiOrd/+nQ9McEBFR5LBO4/Cgvo9TVIigg/4vWWBAcD2T9dg74xdAy6YnGNEmblJtEw692nBgfoD3SPuaTQDrl6RNwX2Nt7JMrVsWWYfTDKzAFyB182DnrPt4rgYtHGNI0hghRyd5++zkxNkifXmkrRQIDU2JWigrS+SotxtL+W/vpUSZr97qE940xYlufvjf1iMtmuDHusIUUFlzFBIwb++TxdXOyQ310MmpwMVHUrEakS2pC8WqFaA6+G8/qAzXKQMbz7vmgYyJudoXqP386mPTBDrkhY44azlLzXl0BFFmLYSWc3uEW42qyTzC859FzBZzT4uS0KtvbDanrbs5J2Grb0Kf/oZztOkW8lgE0/XWAMVcJTWDfSvdCxVkyoLUcNV5d45iUl9SdN0XT7KzQ9vGUFPaGnw8chNhwLU3CDHhqS/BS0nwiCHEglrWlO6C5eT4DIMYaC3XumoOJaGy0i4jpAt84XNhgz/yjG8FS5Xvwj9XN+Mi/shG+WpC2jF5UXW+MwAoFPWQAwCNNo3Kkuy0JyDsWp+VnJv66LRXtKS0w mQYkJtuN gdHb3GXjoR8s5vRnLrBtQRH+yBZ4mfjze44OEW5w/118enfdb6eGMWxDD133phSsL0OiWlITwB8f4nlaw2ETceEZlsET5ouiCvZbP9Jh6vNKylnYHNw4a9O81xemKiZvop047t1nG2zRQcRGYZugnzj6MuZK3iKa0ft1gSKEfQ816LGpAOClMIvN1vyMVvTmvM7yfgM7mjRGySVcnyZ65is8Aa9f/3zrZWhVxu4LbSMGeY/67SvFsO3NOKDVXPJTFnprKJXqgn+NR8+INMGlvBd28KiAi3lH+j12XIxSTJvBTb6le3Zok9Z9yi8euSJbFnB+0YKko4IEuK3ftb+lbO11La4sl0FdZG82SYjM+IXelUp9JGkvWzJPETyF9JPI+xNASf6yuBnxpyMleGCDo0SgryfMkOKba/NOt9tUR8ZPmGSkgYBZwrgFDUT1i5bTEb0CuDrQ/yEy7vrtmZRXT4+kLPjGSXP4102x0pqhlAGozI6tanTXoBWxY58LaEkMnZ0ebYDIWMZHsqjUuDSk/g/k/kLVCbM9E90lVJlnzFjpY2iE= 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: Commit b5389086ad7b ("hugetlbfs: extend the definition of hugepages parameter to support node allocation") changed the NUMA_NO_NODE round-robin allocation behavior in case of a failure to allocate from one NUMA node. The code originally moved on to the next node to try again, but now it immediately breaks out of the loop. Restore the original behavior. Fixes: b5389086ad7b ("hugetlbfs: extend the definition of hugepages parameter to support node allocation") Cc: Zhenguo Yao Signed-off-by: Frank van der Linden --- mm/hugetlb.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 828ae0080ab5..1d8ec21dc2c2 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -3156,16 +3156,13 @@ int __alloc_bootmem_huge_page(struct hstate *h, int nid) m = memblock_alloc_try_nid_raw( huge_page_size(h), huge_page_size(h), 0, MEMBLOCK_ALLOC_ACCESSIBLE, node); - /* - * Use the beginning of the huge page to store the - * huge_bootmem_page struct (until gather_bootmem - * puts them into the mem_map). - */ - if (!m) - return 0; - goto found; + if (m) + break; } + if (!m) + return 0; + found: /* @@ -3177,7 +3174,14 @@ int __alloc_bootmem_huge_page(struct hstate *h, int nid) */ memblock_reserved_mark_noinit(virt_to_phys((void *)m + PAGE_SIZE), huge_page_size(h) - PAGE_SIZE); - /* Put them into a private list first because mem_map is not up yet */ + /* + * Use the beginning of the huge page to store the + * huge_bootmem_page struct (until gather_bootmem + * puts them into the mem_map). + * + * Put them into a private list first because mem_map + * is not up yet. + */ INIT_LIST_HEAD(&m->list); list_add(&m->list, &huge_boot_pages[node]); m->hstate = h;