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 A7CAEC83F03 for ; Fri, 4 Jul 2025 13:50:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 47C8B6B804D; Fri, 4 Jul 2025 09:50:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 405436B803F; Fri, 4 Jul 2025 09:50:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 258A06B804D; Fri, 4 Jul 2025 09:50:23 -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 0A6076B803F for ; Fri, 4 Jul 2025 09:50:23 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id CC6E81602A9 for ; Fri, 4 Jul 2025 13:50:22 +0000 (UTC) X-FDA: 83626716684.03.CF9FD1F Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf25.hostedemail.com (Postfix) with ESMTP id 2075EA0012 for ; Fri, 4 Jul 2025 13:50:20 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AUKnVSBm; spf=pass (imf25.hostedemail.com: domain of rppt@kernel.org designates 172.234.252.31 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=1751637021; 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=f+cnFHihjA16RbgNvk16bKIRHYnGqrLvyx/HUOLp794=; b=MrIaUyDTNkBJBKFcg9hnFotfVd0hFSgdnYZ4rPVfVUx8gg3SYaYwIzHhWafbKEX6L9vR6G tYXYq+FKm5fzMIKxpBbQUN3oNmUpGb3mYdEzH3Myjohz+q4izLqZw3QRT0LPfF5Jh06cv3 AMVUHg37qiAx+p7I6rEDTRFr5Rap/pU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751637021; a=rsa-sha256; cv=none; b=Jl7F99Lb3nfWF4vFzKyn71nBO75/1Y5Ajje+CdxGAsF4E1ByOX4OuMQZNE/v+CPCHJQ836 RWoi/b27pnmBFyCUrclEByuiFirMpBL9mOEAfxxHkhImo+wnxR8uxlCOs2SxvMiGWA54Xr 423ZwP1Ct8czRmvDJ9mdIA5o2oJeLrs= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=AUKnVSBm; spf=pass (imf25.hostedemail.com: domain of rppt@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 1771346994; Fri, 4 Jul 2025 13:50:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 067D0C4CEE3; Fri, 4 Jul 2025 13:50:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751637020; bh=GUCCcYH19Ye+ebUGH5iigB3tILGu1YhJq+jW18wLp4U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AUKnVSBmR+9ZHYaZdh6o3tuMFSCpTJv8fsfg5Bsuc7N/GIg6OKPKO1uuobiWUOK40 qKsB4BwOXXyzJ2RmLIGqr1ceennVXZB3vvnuYnT0/KnqPRO+XOOfifpRaZD1p++eu/ 2d+28Rxk7NSh7E+J1Ub6ZE+CSAFXfapwaLLK4FKBPcjydUZIKuyIPz5Bu10FekiXDR JMIqWlgYeg3zzNz+6SEXFTIEeml8W037fwdtjJYFeeS28BS91d3pUelBp0Th0GV47H OAZ0Vvc+KS42TfEbyT1q9ngi/XA2sir8YA+sGcCatYmMzIDQSgATIsxgbXBoIbA2gp cI5ZOxWEyQYoQ== From: Mike Rapoport To: Andrew Morton Cc: Andy Lutomirski , Borislav Petkov , Daniel Gomez , Dave Hansen , Ingo Molnar , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Mike Rapoport , "H. Peter Anvin" , Peter Zijlstra , Petr Pavlu , Sami Tolvanen , Steven Rostedt , Thomas Gleixner , 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 5/8] execmem: add fallback for failures in vmalloc(VM_ALLOW_HUGE_VMAP) Date: Fri, 4 Jul 2025 16:49:40 +0300 Message-ID: <20250704134943.3524829-6-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250704134943.3524829-1-rppt@kernel.org> References: <20250704134943.3524829-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 2075EA0012 X-Stat-Signature: k136dcxemtkxmfyatxp89ubqib8f4mz6 X-HE-Tag: 1751637020-760457 X-HE-Meta: U2FsdGVkX1+1t6mxjhUhShlthNokgoq6uwY1cWxjkshz4TQ09/QfWCHMZWjIl/s/1jPeq0V9KhMEB1V1LCPnzppvq4iOxQ1OrEwCeVbBDIujAgfD+KYJ9gnYKz9g2nfzqVHtDZAx3Ts9E+dEVh/fcfE755ZGu3S6cuzNbb5/FgyroN4P1D2j7hA/2u9L/qadCuxIkEjgeI+8j02ZKsXlYDJJdAXzu3VhaVO6uHV6dNjLtZteatleY6Rc8h9G9ALIOKBuaiT4L+5/xsQ0smrQyehAMLScCLVwnv4pcQU+DefzKw+rzh6QHUFPoooHbC16RQenvIgFcS5xQrZR7XErS8x/y3bLtgU5/sQtRq8rv7QK+7zBrOAlfWQafLVp+X4cU8wV7jfyE9nLGKHHhFEENSnb+cZ2Gm7E7jc6RY+VrQFMDZdTRVeLOo6mb15PcFapRL1gWMhuQg5m1aW0IlD2OC3GP0DBPucCpqBrtrGAwFnlXGXx/WNTE3HIQW2o6DfOYPBsggb+MCkHMITUb/WjCfRfSciXRtfRIzwk98YsB8uK+/D/50mvE9RgkHuNi0yXc1nDxAe7jCisEcao9A1WekvWnB82C+R3lQwPEobnXTY10RgGVo/xkh+BPhhLysmBTxijouhMIzojiQhAqDn2eIAZaJjQ4MPOY679HF28NErNGQFkbRJuCNBX/pEhw8BOytXdkU7UHcjwqBa6GwGKeAFzsCAtrm5Rj9BilYd5ml+AJ1ikWb/E5ICAm1S2zcgjKofM+Trp0vF37+pPd+azlCXwecgLO8nZzduNy6b0Bh81Bg+a2S8uYe5ouLY+E5tcJ9WVeaxLFS18FHpF4Yutanmx5oB6PFPF5ci4NYK9gLw96o7yhNXNV5x8SU47g0QapPYJSZBqp77RslDpxDoSerMLFaootEPWXsk//i2VJG8jDvGwrMPXZfEZf7jEGSWIY1xF3esurJiw5ubSvu9 NghzFphG gt76XcqTNqxCqRF0QF8Z7QlcFVj8PABdVrogwmaDFzmsCUrMoLCCpzPIc74MPuD5jBAPGtTcIKLvtfnG+JLF2bW4RxFC2LkaR9fjOMYb2zyQGfhWtRtDBRnvSheZ67uvioLSMiFbmuPmbF4Ffx/iORyxmeJiwVL/6Y+c9ukEwvimXY5suG8V0EytYZ1vIlvJSNsGnyhqJW7a+TcXH6V61KiKXs/M07LTSmlUFyyz1nbaZU8FzTm2QJIXEye1VGNNdY/irwW24UqzMr7XxtFMjfBp8Ew== 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 3cb3a9d1c93f..ec2a6aab143b 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; @@ -457,7 +462,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