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 70399C83F09 for ; Wed, 9 Jul 2025 13:50:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0EA2A6B011F; Wed, 9 Jul 2025 09:50:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 09B426B0120; Wed, 9 Jul 2025 09:50:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF33D6B0121; Wed, 9 Jul 2025 09:50:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DF0DF6B011F for ; Wed, 9 Jul 2025 09:50:15 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 97406B70A4 for ; Wed, 9 Jul 2025 13:50:15 +0000 (UTC) X-FDA: 83644860390.23.D97BE6E Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf22.hostedemail.com (Postfix) with ESMTP id 1A0FFC0006 for ; Wed, 9 Jul 2025 13:50:13 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="i6mb4tb/"; spf=pass (imf22.hostedemail.com: domain of rppt@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752069014; 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=qnz/8YjN8136YSI4VJR8h9XSJpyIwHzzJQLlJUWYmuA=; b=yJA3Y9pIQLmpRR+lAQUrNCh7o3B7qJGmpc4GGpnjfKVuhRx2Ypf8u6nZW8nuTndux3xDSq BPnBydaY2Flm/8phjBTD3JOn24NxKlrU/3cTWU9nGnSSY8ONYqfqgy9/Xs+aFnJ8J+MOri ySLbUdMSJscm9RQgmYwbqdgLeyRSdWI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="i6mb4tb/"; spf=pass (imf22.hostedemail.com: domain of rppt@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752069014; a=rsa-sha256; cv=none; b=F8xXjmiklyHpsQ70mJC1GRO5A5IfkAOJHaY+o6zbUGbiY7CQebsNRVIdLQm901lnOiOyft 8JLWa/0QY2uI+ZHKIOcI4IMK6RvgzxteEJQhJpWwjXge/s2zNveGEoPOcVp5BfwykUjHSU xshRuKEvhFNRPwWchXxr1AmNLhy3hew= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 815FB61495; Wed, 9 Jul 2025 13:50:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0F91C4CEEF; Wed, 9 Jul 2025 13:50:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752069013; bh=3rjfBdytCgPEmue4GcEI2ssOKhgIJ1qlJg3E/xaLrs0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i6mb4tb/c5ErumOIPqYDTAF5gBHWVxb1YJiVQFg8YU/ymef36m7/KBWmtp6YhPXD7 VhjC36mzromjvGypCvFoZU5WRmUVg5YseVQOBP6/WRSxg+8XYIgFFu0R2/FjRMukz+ BTp5uWcXNBH51L7rvo25EghdRCbCkPzeGslyNIBFqyusGbg0rK+UBU9PxZHm/Tgsow k778y1swFYWdZuEUC0CHxiav3CG9aUOi6NWdtstzvWPqV0Ts9oeBzTI0K4+YpQYYD2 21K0u/A6g76A6LiiWRLCNgsCl2xEf3YvhB4O7D30F1GQS6t1GvUmGwZlJ1qj/rUTP3 +IgOb3QxDYbnQ== From: Mike Rapoport To: Andrew Morton Cc: Andy Lutomirski , Borislav Petkov , Christophe Leroy , Daniel Gomez , Dave Hansen , Ingo Molnar , "Liam R. Howlett" , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Mike Rapoport , "H. Peter Anvin" , Peter Zijlstra , Petr Pavlu , Sami Tolvanen , Steven Rostedt , Thomas Gleixner , Yann Ylavic , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-trace-kernel@vger.kernel.org, x86@kernel.org Subject: [PATCH v2 5/8] execmem: add fallback for failures in vmalloc(VM_ALLOW_HUGE_VMAP) Date: Wed, 9 Jul 2025 16:49:30 +0300 Message-ID: <20250709134933.3848895-6-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250709134933.3848895-1-rppt@kernel.org> References: <20250709134933.3848895-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 1A0FFC0006 X-Stat-Signature: o8tc1afmwsgtfmxgfa76p9dc134k1bs7 X-Rspam-User: X-HE-Tag: 1752069013-166369 X-HE-Meta: U2FsdGVkX1//StAShu8EEIeWLgplmKkm15B3AL8+LPOmYRqcSYTY/FyIZMfDXLiQxbG0ADcPJd8/Px0UeuxXFb30iR+GdQVDpS6gp0J17EMiS7i/sqIjxmqUw76VAyK9fsA1bvUUHFQmY7s7HsLpPxMWrUgbqWvs5Rt14kPI8mlhveBrY+nxkDTmmOq3ePu4doQfmlgp1Ac9KVkKgcy+RFp/5Ckh6ufOJxeNSog822CnbcTh+I3Bg07GrlY9OaS7rMC/qd06eKHTDw3NXVQoDir/Dq1NUktjmHw5gMFlRf6rmLJiPV7fpX0MtwcUoiRCa/TSAKb64pPkm8eE58NWv4urNBvWSadYC19DQT0lcsXz8E3EWST2FuNojcAFrbO2mIgpbLzNUkw4RNtX9MZHctKpYlQJ7CrFg1pbUcDcnGWWPAKu9z7CJS+LsavvZVjD9ljwLj+CdnKxTQAbgle+nuFpYfbBsy0I1HEK8toFabknDVJKm3v20RK47TiK6ehvo/lcV6WAYcyGGulFixDzhi0IxyycTkB5MT1sF8pmdN4TABzpNHeOMt5C3zPjMqnlqv0yfUb6wUolJKEJZHzfHQBON1UChRotJOw+QFldZOqf6SiyINVYRSnpbrzkuQvh6ytKYQrWp2kDDRT6OiyMMX98FlD+QDvwbITGvWieMVqPNyzP1C8ek3aSeimsY22/nJW7HqBfc72V90K6Nj03e/YO701qGSD4xjlzn+QjXzhubVsaoZitG8mjuz1EkPfmwePAr7BkFF5F1JmhdpKFvidPA9ne1Ns8XOx/EP36yiO+qc/fyDqxJgb/+kUbfI6xSptUxYYYLjXv7asQDuG9mM1vXzV0J7alimpEkls3wC7CbYXoe8MeFnaI/uysZ2U8FFdVTPFDqqBcAmd2IJLiuI1UM+KT3G/Op3ZvZc3aAr/b7Q61GQHWnQZSKZ3Dp3/P4P7oFeoncUcjgwXH58l kkylm/7h RZ/OlW9pA8C69S1STcLbR9JKgCKBZkGFRZgcpwOp1TEW5kDe0IBEizegIqfw8ZE88qqbfs0e6koZd4xTLK0KPcGHrH8wJD8eBwxGtUAbqOObJ0xZQYHHwwKWDelcpAMU4OLgXqdaFDmWviahGzt7tZNJ9aRHxf3+bdcirKHC7kbl1ghsuafMvUohMRhwG7iPRFm8F02WMv+HoYypTeLohpnke1Ob1UAB3d7pZ7fASANdna3a1udP6NoZMScYiGjIw9sStnrI8Jlb8UKlyTJcT/6D6fnGi35rvU/0p1RuaQWXpb6wDAbpW8e1TH7e+GS8yFPyCowKFR3t6Mz/G7E7J+sQbPXVtbobQ7uss 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)" When execmem populates ROX cache it uses vmalloc(VM_ALLOW_HUGE_VMAP). Although vmalloc falls back to allocating base pages if high order allocation fails, it may happen that it still cannot allocate enough memory. Right now ROX cache is only used by modules and in majority of cases the allocations happen at boot time when there's plenty of free memory, but upcoming enabling ROX cache for ftrace and kprobes would mean that execmem allocations can happen when the system is under memory pressure and a failure to allocate large page worth of memory becomes more likely. Fallback to regular vmalloc() if vmalloc(VM_ALLOW_HUGE_VMAP) fails. Signed-off-by: Mike Rapoport (Microsoft) --- mm/execmem.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mm/execmem.c b/mm/execmem.c index 056d3caaf4a1..04c35c3a9361 100644 --- a/mm/execmem.c +++ b/mm/execmem.c @@ -291,6 +291,11 @@ static int execmem_cache_populate(struct execmem_range *range, size_t size) alloc_size = round_up(size, PMD_SIZE); p = execmem_vmalloc(range, alloc_size, PAGE_KERNEL, vm_flags); + if (!p) { + alloc_size = size; + p = execmem_vmalloc(range, alloc_size, PAGE_KERNEL, vm_flags); + } + if (!p) return err; @@ -462,7 +467,7 @@ void *execmem_alloc(enum execmem_type type, size_t size) bool use_cache = range->flags & EXECMEM_ROX_CACHE; unsigned long vm_flags = VM_FLUSH_RESET_PERMS; pgprot_t pgprot = range->pgprot; - void *p; + void *p = NULL; size = PAGE_ALIGN(size); -- 2.47.2