From patchwork Thu Mar 20 01:55:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changyuan Lyu X-Patchwork-Id: 14023303 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 9291FC35FFC for ; Thu, 20 Mar 2025 01:56:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 166FE280005; Wed, 19 Mar 2025 21:56:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 11E29280001; Wed, 19 Mar 2025 21:56:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EAAF3280005; Wed, 19 Mar 2025 21:56:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B567A280001 for ; Wed, 19 Mar 2025 21:56:07 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1C4361A07F3 for ; Thu, 20 Mar 2025 01:56:08 +0000 (UTC) X-FDA: 83240264016.29.261A229 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) by imf23.hostedemail.com (Postfix) with ESMTP id 3F708140009 for ; Thu, 20 Mar 2025 01:56:06 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=R2xd7aWr; spf=pass (imf23.hostedemail.com: domain of 3tXXbZwoKCFQy3w92KGw972AA270.yA8749GJ-886Hwy6.AD2@flex--changyuanl.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3tXXbZwoKCFQy3w92KGw972AA270.yA8749GJ-886Hwy6.AD2@flex--changyuanl.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=1742435766; 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=yN4bzpkkVfQ/uH0w0E99LDF9bPjq6B3vGfE1Jc/6gP4=; b=i9VvvlFNaKEgjo9x9XEL0XsAbOab/CNZJtEJFOb882cCqLYxJRCBUiuCHToQ1gDPv9Aw0C 0dPzib1UyhMDgHFOUfwMU6cgYtLR10fSBQuY0CyHWCwHdlepqiqh+L39MICMDiJGxjSB8e qm9lb0Z/CoQJSG+TOL7iaqVcLZPR9a0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742435766; a=rsa-sha256; cv=none; b=rgplwyx+xuC6Bs2igNS8jmu+VLEzUVqcKjdwaHKtuXWYWcZmFmgi6zsPFs47TsvsFrwk84 8cEX3FEwmlr73bC1fkp6RLPHPm7xqUMXcvunk3cQsQiwRsWkxrP6w2ljFFY1lb9QX6dtQD MyPdAakJRvED/Qtpj/wDdZwYdfBAboI= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=R2xd7aWr; spf=pass (imf23.hostedemail.com: domain of 3tXXbZwoKCFQy3w92KGw972AA270.yA8749GJ-886Hwy6.AD2@flex--changyuanl.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3tXXbZwoKCFQy3w92KGw972AA270.yA8749GJ-886Hwy6.AD2@flex--changyuanl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-301bbe9e084so851825a91.0 for ; Wed, 19 Mar 2025 18:56:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1742435765; x=1743040565; 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=yN4bzpkkVfQ/uH0w0E99LDF9bPjq6B3vGfE1Jc/6gP4=; b=R2xd7aWrI2KkGwEphq784ENnfyVvb7JHOdIBdfOuH/cxliT+mk7kOaLFw2QG7a+rJL kcdMezU2c/l0Nmj6BaCzNos62YmzruWb9TD47qFSeG0Lm2Esid1sdUX65q3kDd0OMX2E k69vLfPXS5QBCheiIIJgOMZSd6C1ZvzcSDeSPVPCPU9H5o8Ytu3q+3LbtISpPNtxS64v m/XwZHrEmUCorFlusbGAKLuWxg0YPbmuTXpmOkf81Jy6n/zMGziAahbvu7u9P6NVpgMR 9reLvfUDGljgumSqTTVMXAzEAt8UqI7JGDNQxWw/+q6otcaBezve0NseQj/c9uz77RgI wMvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742435765; x=1743040565; 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=yN4bzpkkVfQ/uH0w0E99LDF9bPjq6B3vGfE1Jc/6gP4=; b=HIIFXQnjT923dVRnQI7ynCH1bcJu1+1TU5PtQrvlPN8xRXZh/hPtPgblUCubnA8AGl SnnXZDPA8bdtBJncV7tXVInnAFec1EwMs5/S4lhxrHRAMecIvrwaBgPT7LVcAJqsuJP/ oUrkr2EnC+48lUh0irielRJI467tfcdyZP0ax6x4SWuiXzMmBNydvES1uUymacycAcu/ aFcMjAtvZKlRZ+qkxBcP1LNZqbAPgexlukw/XRC3gxKqBjnz8sA1ZwS96B3PPFL7Ini5 c9iCU92DqZu/EOzzK/nxYKIdbtLyYbt2qfqqL6L+hTHMf945/Sqh8z0kJWC3NOVZ2TdF ASSg== X-Forwarded-Encrypted: i=1; AJvYcCX0CZOg2d1HFFXULHGQ/9b0tSk75gZVL79ORjQLdLT/tsAtiw9z8NSfsaQDOJZ5qk9b84JGljgQyA==@kvack.org X-Gm-Message-State: AOJu0Yxk1LEakaD/DztTKNgiAhPmxMy6/GCduD60l9GauArjlr1JvKJD NjlmZxvW67OIv7Dj9W8EORtfGNDNP4ezXT6p1+Z6/pL9fYCCYSqBq8UKj8fqz3gOy4B9rNOCR+n EY4fnNBWQUk6FBiG2tA== X-Google-Smtp-Source: AGHT+IEsdt/zCxXN1IHqiLuLR1iz8KpffEW0rcwgNYsBwKcCWy7uT/QglIx/zEe+p2m6KToDSLlcFSwk6G8J4CvU X-Received: from pgkk67.prod.google.com ([2002:a63:2446:0:b0:af5:6108:71e4]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:9188:b0:1f5:60ce:6cc6 with SMTP id adf61e73a8af0-1fbebd7cea6mr8202773637.21.1742435765048; Wed, 19 Mar 2025 18:56:05 -0700 (PDT) Date: Wed, 19 Mar 2025 18:55:38 -0700 In-Reply-To: <20250320015551.2157511-1-changyuanl@google.com> Mime-Version: 1.0 References: <20250320015551.2157511-1-changyuanl@google.com> X-Mailer: git-send-email 2.49.0.rc1.451.g8f38331e32-goog Message-ID: <20250320015551.2157511-4-changyuanl@google.com> Subject: [PATCH v5 03/16] memblock: add MEMBLOCK_RSRV_KERN flag From: Changyuan Lyu To: linux-kernel@vger.kernel.org Cc: graf@amazon.com, akpm@linux-foundation.org, luto@kernel.org, anthony.yznaga@oracle.com, arnd@arndb.de, ashish.kalra@amd.com, benh@kernel.crashing.org, bp@alien8.de, catalin.marinas@arm.com, dave.hansen@linux.intel.com, dwmw2@infradead.org, ebiederm@xmission.com, mingo@redhat.com, jgowans@amazon.com, corbet@lwn.net, krzk@kernel.org, rppt@kernel.org, mark.rutland@arm.com, pbonzini@redhat.com, pasha.tatashin@soleen.com, hpa@zytor.com, peterz@infradead.org, ptyadav@amazon.de, robh+dt@kernel.org, robh@kernel.org, saravanak@google.com, skinsburskii@linux.microsoft.com, rostedt@goodmis.org, tglx@linutronix.de, thomas.lendacky@amd.com, usama.arif@bytedance.com, will@kernel.org, devicetree@vger.kernel.org, kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, Changyuan Lyu X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 3F708140009 X-Stat-Signature: qt49afxedexa3ne4hnf9z6jrfztu613x X-HE-Tag: 1742435766-482362 X-HE-Meta: U2FsdGVkX1950mXR+ijMsiTynZCRjRa68uHzwyMYN2b5U0J63acQ82wEZAZWKhJItSiWATVo4aBPwmxyOODpT3/io+LkhAwBHfm27UdWcuvWQDgCzRbzuLKL0lwRIf8ao1LLDWHzm9z2AshWtwkFd1BqJjXnoGcTJWM5VobsQOn6UzmxXLrhKmrht3pu9FK5QnpUTjdC1JeikrNh15TiPFil6dXLYb1TsYOn9gWQ3bqLSYfboeRgQCjA6f6DJi37X5oA5x1nbdYGbgxIZXBIFWKLnsaFnZMSEEE4mXLY6BpeJhDUw9+CVp0c2Y4pYm4190rvgXsSn3fFPwRWLHciVP+52j6gW2AHTWMRIoW4Xyuz0z/TaanFLqQHtUVQiCAMH7K3uj2A1ilkhuu3ZLc0WcVwmDYVMh11wTXvxB3UNde/YwtnNG4Ql+FJGjXo3h14c02mdeqsXJUZeVyQzTEP+i0gd+B0l5n/XLQ2YmmUkfbB6gTzzV8gJoskawb/D2M7J06xZ9wQ4+oFaX+O6LR03MP+ZE2rBJYoLy338wK9qa6xVmHTZpjroIE5CObj3MNMV/NIHcrQ1bvfBN1Ii5lwiyoKy+ZcFNIkSk2TlXHo2ejBnIiTFUAxiNnmBLH+tJgnZksaxfz20uQFquQnRxT8X9E9CVEHZsX9ApMcWteCwEs77+nmNHJ8jfuWlbUeyHtiKKalIWIeoz6nIsEL4IifZ+LoCSGZ/6mfEJbnlHmOQvtSMExkertTcECnjGIjm99sgL16aMily94nwswysdJT80i/8grfx9ezw4F8bbBUiIjeRbdaxtFVtM4nBPE0AjojTEIUsI7MgmSzHOFkgV14qlDJtnilJCvd/a6AMkgJUqqRUBvps6O4RmlyLBhmPUPXQW+Vwh00usj5jP+IDW15JR+X22SP5h3/KTBhXSoMCmYQF85jSc33z5ZipbgqDt8UCSGIYyVnmcvvmX4+Wy6 iqGgBUoV DF5NVOG0LezBZBmZHe2ib1yvgLuJtgc5gxkvpivmc44dzPpeixbIbZAECCPt+HbB9JYJ18LCKtrfPs6KNs7u5CfqvnkHbuLJxeByKLcmWjOLgGQK40CUb3QE48pNTDoIriV9huBwHKPa6FVlVbK3Q1vjYDw11jmscM4nQIhCDggWxZpQRaBYhEdKEmVZ7/F0MiVr7pSN3Gn/5B/aJlN9ZGE0yvqT7jth9lbk6uR+KuYYBMorL0K/j1uUx9ba5EmlNuz48ivbssOzVyAsbMrcOtm2gNHA6RgRvH/e41mJ1BX45bi5z1szdBcrFDkeFm2dw+lu9/SHCQKM/X7zqgSzcGeVqGb9nL/yD301zSVIJFm7baXKI6TyInRnQV7BHCcNU9rS9mbNaMHm/oMu86rVGvj3sK6awRo9/Vxs8UitbkFc8QyXmZ5UMWhmjMXB25y+x0Q2k0eIrIIILc7hPcUeZ5/TKvsG75TQlUWxaqB8IDUHG4mAYaNtuvWYcPYirRyZqDO7Vvsdv1iFF+Yc1Uxhn2fcjS1AMKXsWdphZQ9S/mXH4s6scsUvEOAaZMlur5NRes/E144GFyoIA3uUclS/AZj/C5/ep9A/8kVyqIS85yZ+pyNcR201WVzdyQeUQb2qbU2fBjug6+KE8/moY6YcYXeTf7E2q+N1ENOROs8QUGtATTAa6mgZuw8VazjBJBqE4jrtiV+ty+CrpCqHc2UQIFcUd8A== 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: From: "Mike Rapoport (Microsoft)" to denote areas that were reserved for kernel use either directly with memblock_reserve_kern() or via memblock allocations. Signed-off-by: Mike Rapoport (Microsoft) Co-developed-by: Changyuan Lyu Signed-off-by: Changyuan Lyu --- include/linux/memblock.h | 19 ++++++++- mm/memblock.c | 40 +++++++++++++++---- tools/testing/memblock/tests/alloc_api.c | 22 +++++----- .../memblock/tests/alloc_helpers_api.c | 4 +- tools/testing/memblock/tests/alloc_nid_api.c | 20 +++++----- 5 files changed, 73 insertions(+), 32 deletions(-) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index e79eb6ac516f..1037fd7aabf4 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -42,6 +42,9 @@ extern unsigned long long max_possible_pfn; * kernel resource tree. * @MEMBLOCK_RSRV_NOINIT: memory region for which struct pages are * not initialized (only for reserved regions). + * @MEMBLOCK_RSRV_KERN: memory region that is reserved for kernel use, + * either explictitly with memblock_reserve_kern() or via memblock + * allocation APIs. All memblock allocations set this flag. */ enum memblock_flags { MEMBLOCK_NONE = 0x0, /* No special request */ @@ -50,6 +53,7 @@ enum memblock_flags { MEMBLOCK_NOMAP = 0x4, /* don't add to kernel direct mapping */ MEMBLOCK_DRIVER_MANAGED = 0x8, /* always detected via a driver */ MEMBLOCK_RSRV_NOINIT = 0x10, /* don't initialize struct pages */ + MEMBLOCK_RSRV_KERN = 0x20, /* memory reserved for kernel use */ }; /** @@ -116,7 +120,19 @@ int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid, int memblock_add(phys_addr_t base, phys_addr_t size); int memblock_remove(phys_addr_t base, phys_addr_t size); int memblock_phys_free(phys_addr_t base, phys_addr_t size); -int memblock_reserve(phys_addr_t base, phys_addr_t size); +int __memblock_reserve(phys_addr_t base, phys_addr_t size, int nid, + enum memblock_flags flags); + +static __always_inline int memblock_reserve(phys_addr_t base, phys_addr_t size) +{ + return __memblock_reserve(base, size, NUMA_NO_NODE, 0); +} + +static __always_inline int memblock_reserve_kern(phys_addr_t base, phys_addr_t size) +{ + return __memblock_reserve(base, size, NUMA_NO_NODE, MEMBLOCK_RSRV_KERN); +} + #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP int memblock_physmem_add(phys_addr_t base, phys_addr_t size); #endif @@ -477,6 +493,7 @@ static inline __init_memblock bool memblock_bottom_up(void) phys_addr_t memblock_phys_mem_size(void); phys_addr_t memblock_reserved_size(void); +phys_addr_t memblock_reserved_kern_size(phys_addr_t limit, int nid); unsigned long memblock_estimated_nr_free_pages(void); phys_addr_t memblock_start_of_DRAM(void); phys_addr_t memblock_end_of_DRAM(void); diff --git a/mm/memblock.c b/mm/memblock.c index 95af35fd1389..e704e3270b32 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -491,7 +491,7 @@ static int __init_memblock memblock_double_array(struct memblock_type *type, * needn't do it */ if (!use_slab) - BUG_ON(memblock_reserve(addr, new_alloc_size)); + BUG_ON(memblock_reserve_kern(addr, new_alloc_size)); /* Update slab flag */ *in_slab = use_slab; @@ -641,7 +641,7 @@ static int __init_memblock memblock_add_range(struct memblock_type *type, #ifdef CONFIG_NUMA WARN_ON(nid != memblock_get_region_node(rgn)); #endif - WARN_ON(flags != rgn->flags); + WARN_ON(flags != MEMBLOCK_NONE && flags != rgn->flags); nr_new++; if (insert) { if (start_rgn == -1) @@ -901,14 +901,15 @@ int __init_memblock memblock_phys_free(phys_addr_t base, phys_addr_t size) return memblock_remove_range(&memblock.reserved, base, size); } -int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) +int __init_memblock __memblock_reserve(phys_addr_t base, phys_addr_t size, + int nid, enum memblock_flags flags) { phys_addr_t end = base + size - 1; - memblock_dbg("%s: [%pa-%pa] %pS\n", __func__, - &base, &end, (void *)_RET_IP_); + memblock_dbg("%s: [%pa-%pa] nid=%d flags=%x %pS\n", __func__, + &base, &end, nid, flags, (void *)_RET_IP_); - return memblock_add_range(&memblock.reserved, base, size, MAX_NUMNODES, 0); + return memblock_add_range(&memblock.reserved, base, size, nid, flags); } #ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP @@ -1459,14 +1460,14 @@ phys_addr_t __init memblock_alloc_range_nid(phys_addr_t size, again: found = memblock_find_in_range_node(size, align, start, end, nid, flags); - if (found && !memblock_reserve(found, size)) + if (found && !__memblock_reserve(found, size, nid, MEMBLOCK_RSRV_KERN)) goto done; if (numa_valid_node(nid) && !exact_nid) { found = memblock_find_in_range_node(size, align, start, end, NUMA_NO_NODE, flags); - if (found && !memblock_reserve(found, size)) + if (found && !memblock_reserve_kern(found, size)) goto done; } @@ -1751,6 +1752,28 @@ phys_addr_t __init_memblock memblock_reserved_size(void) return memblock.reserved.total_size; } +phys_addr_t __init_memblock memblock_reserved_kern_size(phys_addr_t limit, int nid) +{ + struct memblock_region *r; + phys_addr_t total = 0; + + for_each_reserved_mem_region(r) { + phys_addr_t size = r->size; + + if (r->base > limit) + break; + + if (r->base + r->size > limit) + size = limit - r->base; + + if (nid == memblock_get_region_node(r) || !numa_valid_node(nid)) + if (r->flags & MEMBLOCK_RSRV_KERN) + total += size; + } + + return total; +} + /** * memblock_estimated_nr_free_pages - return estimated number of free pages * from memblock point of view @@ -2397,6 +2420,7 @@ static const char * const flagname[] = { [ilog2(MEMBLOCK_NOMAP)] = "NOMAP", [ilog2(MEMBLOCK_DRIVER_MANAGED)] = "DRV_MNG", [ilog2(MEMBLOCK_RSRV_NOINIT)] = "RSV_NIT", + [ilog2(MEMBLOCK_RSRV_KERN)] = "RSV_KERN", }; static int memblock_debug_show(struct seq_file *m, void *private) diff --git a/tools/testing/memblock/tests/alloc_api.c b/tools/testing/memblock/tests/alloc_api.c index 68f1a75cd72c..c55f67dd367d 100644 --- a/tools/testing/memblock/tests/alloc_api.c +++ b/tools/testing/memblock/tests/alloc_api.c @@ -134,7 +134,7 @@ static int alloc_top_down_before_check(void) PREFIX_PUSH(); setup_memblock(); - memblock_reserve(memblock_end_of_DRAM() - total_size, r1_size); + memblock_reserve_kern(memblock_end_of_DRAM() - total_size, r1_size); allocated_ptr = run_memblock_alloc(r2_size, SMP_CACHE_BYTES); @@ -182,7 +182,7 @@ static int alloc_top_down_after_check(void) total_size = r1.size + r2_size; - memblock_reserve(r1.base, r1.size); + memblock_reserve_kern(r1.base, r1.size); allocated_ptr = run_memblock_alloc(r2_size, SMP_CACHE_BYTES); @@ -231,8 +231,8 @@ static int alloc_top_down_second_fit_check(void) total_size = r1.size + r2.size + r3_size; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc(r3_size, SMP_CACHE_BYTES); @@ -285,8 +285,8 @@ static int alloc_in_between_generic_check(void) total_size = r1.size + r2.size + r3_size; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc(r3_size, SMP_CACHE_BYTES); @@ -422,7 +422,7 @@ static int alloc_limited_space_generic_check(void) setup_memblock(); /* Simulate almost-full memory */ - memblock_reserve(memblock_start_of_DRAM(), reserved_size); + memblock_reserve_kern(memblock_start_of_DRAM(), reserved_size); allocated_ptr = run_memblock_alloc(available_size, SMP_CACHE_BYTES); @@ -608,7 +608,7 @@ static int alloc_bottom_up_before_check(void) PREFIX_PUSH(); setup_memblock(); - memblock_reserve(memblock_start_of_DRAM() + r1_size, r2_size); + memblock_reserve_kern(memblock_start_of_DRAM() + r1_size, r2_size); allocated_ptr = run_memblock_alloc(r1_size, SMP_CACHE_BYTES); @@ -655,7 +655,7 @@ static int alloc_bottom_up_after_check(void) total_size = r1.size + r2_size; - memblock_reserve(r1.base, r1.size); + memblock_reserve_kern(r1.base, r1.size); allocated_ptr = run_memblock_alloc(r2_size, SMP_CACHE_BYTES); @@ -705,8 +705,8 @@ static int alloc_bottom_up_second_fit_check(void) total_size = r1.size + r2.size + r3_size; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc(r3_size, SMP_CACHE_BYTES); diff --git a/tools/testing/memblock/tests/alloc_helpers_api.c b/tools/testing/memblock/tests/alloc_helpers_api.c index 3ef9486da8a0..e5362cfd2ff3 100644 --- a/tools/testing/memblock/tests/alloc_helpers_api.c +++ b/tools/testing/memblock/tests/alloc_helpers_api.c @@ -163,7 +163,7 @@ static int alloc_from_top_down_no_space_above_check(void) min_addr = memblock_end_of_DRAM() - SMP_CACHE_BYTES * 2; /* No space above this address */ - memblock_reserve(min_addr, r2_size); + memblock_reserve_kern(min_addr, r2_size); allocated_ptr = memblock_alloc_from(r1_size, SMP_CACHE_BYTES, min_addr); @@ -199,7 +199,7 @@ static int alloc_from_top_down_min_addr_cap_check(void) start_addr = (phys_addr_t)memblock_start_of_DRAM(); min_addr = start_addr - SMP_CACHE_BYTES * 3; - memblock_reserve(start_addr + r1_size, MEM_SIZE - r1_size); + memblock_reserve_kern(start_addr + r1_size, MEM_SIZE - r1_size); allocated_ptr = memblock_alloc_from(r1_size, SMP_CACHE_BYTES, min_addr); diff --git a/tools/testing/memblock/tests/alloc_nid_api.c b/tools/testing/memblock/tests/alloc_nid_api.c index 49bb416d34ff..562e4701b0e0 100644 --- a/tools/testing/memblock/tests/alloc_nid_api.c +++ b/tools/testing/memblock/tests/alloc_nid_api.c @@ -324,7 +324,7 @@ static int alloc_nid_min_reserved_generic_check(void) min_addr = max_addr - r2_size; reserved_base = min_addr - r1_size; - memblock_reserve(reserved_base, r1_size); + memblock_reserve_kern(reserved_base, r1_size); allocated_ptr = run_memblock_alloc_nid(r2_size, SMP_CACHE_BYTES, min_addr, max_addr, @@ -374,7 +374,7 @@ static int alloc_nid_max_reserved_generic_check(void) max_addr = memblock_end_of_DRAM() - r1_size; min_addr = max_addr - r2_size; - memblock_reserve(max_addr, r1_size); + memblock_reserve_kern(max_addr, r1_size); allocated_ptr = run_memblock_alloc_nid(r2_size, SMP_CACHE_BYTES, min_addr, max_addr, @@ -436,8 +436,8 @@ static int alloc_nid_top_down_reserved_with_space_check(void) min_addr = r2.base + r2.size; max_addr = r1.base; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc_nid(r3_size, SMP_CACHE_BYTES, min_addr, max_addr, @@ -499,8 +499,8 @@ static int alloc_nid_reserved_full_merge_generic_check(void) min_addr = r2.base + r2.size; max_addr = r1.base; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc_nid(r3_size, SMP_CACHE_BYTES, min_addr, max_addr, @@ -563,8 +563,8 @@ static int alloc_nid_top_down_reserved_no_space_check(void) min_addr = r2.base + r2.size; max_addr = r1.base; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc_nid(r3_size, SMP_CACHE_BYTES, min_addr, max_addr, @@ -909,8 +909,8 @@ static int alloc_nid_bottom_up_reserved_with_space_check(void) min_addr = r2.base + r2.size; max_addr = r1.base; - memblock_reserve(r1.base, r1.size); - memblock_reserve(r2.base, r2.size); + memblock_reserve_kern(r1.base, r1.size); + memblock_reserve_kern(r2.base, r2.size); allocated_ptr = run_memblock_alloc_nid(r3_size, SMP_CACHE_BYTES, min_addr, max_addr,