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 CEDD0C83F17 for ; Sun, 13 Jul 2025 07:18:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7222D6B009B; Sun, 13 Jul 2025 03:18:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6F3466B009C; Sun, 13 Jul 2025 03:18:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 630506B009D; Sun, 13 Jul 2025 03:18:14 -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 56D346B009B for ; Sun, 13 Jul 2025 03:18:14 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 280CC140345 for ; Sun, 13 Jul 2025 07:18:14 +0000 (UTC) X-FDA: 83658387708.15.2A71797 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf10.hostedemail.com (Postfix) with ESMTP id 7D3F5C0002 for ; Sun, 13 Jul 2025 07:18:12 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=NwSDMb+G; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752391092; 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=QdIwsWTTVxQOggLhBfaFK3llPSKJlnAqupt+yxRANo4=; b=aATaiyiruaLEjbNkVrcc2p5NU7FaEfbinEbV/kyu3iO8+e2FBpFBKB4DFxbhpbzNADJbft px+qLnFd4cZQ62V2xWP5XqLpp8L3/8iiKXSj6027IBgDebIoTXZPbUC9G9/IFE8kj672pW PbECPDmjlOmteT0AANWzp2cJm4noLIU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752391092; a=rsa-sha256; cv=none; b=QDawzIgUI5r0RIkAhf19Oqko8VRZM9cboQ3aNBDslmNQInKrIyrbb9qTJZ+WDxhAMekEfJ OF2Rdy4gXb+Sk447jndgBr8THiLCgUnaUM5su4vQsinuKpqn3Z162mpMHh1buz1EpAH7vn QMmE4/3JJlmsIExvFZJFWRYQGR8GRYI= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=NwSDMb+G; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf10.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id B84455C545F; Sun, 13 Jul 2025 07:18:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0F54C4CEF1; Sun, 13 Jul 2025 07:18:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752391091; bh=2q/JtK0Q0Ijdxbx3Xk3DGzA5d9fd0T9sey9wBFRhk6c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NwSDMb+GR3jpqmG1F3gNIPFiP9ubGEaHCEyQ7aMu/Y+Xknb4nxFNImBJJYI51QT6P KgGd/2j6MCWyzEQY3jR902Xj3FabA/SKh3ArnVhr6rflgjyjnJI8uduaLAFVDsm7aR RBz9IXjMkl6u/R4v4J+/kKBKq8au9kpkwKHfkHL3p61+vsi5260EwHVIYx77QZfgQ7 IW+D6YNOOT2jpjr2mEWmBuwmXfDSfRVinE+B9zcAHNrPHtnwHt+V+ts8VlGyuklqVN xyS49/X79Ep8paxlLZOmnLZmIxGdhVWVce5JTdmgjIaYq3ncmYRDpPkSx0V+8BGWHa edXw+gArcXUjA== 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 v3 5/8] execmem: add fallback for failures in vmalloc(VM_ALLOW_HUGE_VMAP) Date: Sun, 13 Jul 2025 10:17:27 +0300 Message-ID: <20250713071730.4117334-6-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250713071730.4117334-1-rppt@kernel.org> References: <20250713071730.4117334-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 7D3F5C0002 X-Stat-Signature: rpbk97946yebyju3db8oixt96xxzs7cy X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1752391092-544055 X-HE-Meta: U2FsdGVkX1+UaqcBpjM//+G19dx5IB6HMQLiFa60QeCf3atfty8isF2rvUuFfIzYZ/jG77rW1WIEopLvqj17z5eMSY4tx4zTUSoaPuzvdLD+HHtiUjyBl/Unch9Ak9aA+0In6v+NJBI2+kif/WnZi6buwqXrIF/w4m4C6mFi+NafPYLkQADhjjKzNVTlnsJEBkYPu42zH7vYtH4kXxBZR8pcJ/YWaN9khEpB0UGKnS9jL3jzVXxNeA3aSxBa3NB44RjLcURtVXJ2zIIwN0VecZO7RF6f+cQjPrDJqB6bTUJS/HMFe4CpNI/JcD9wQX1duP0a5mZ+E6qCS8uL6Ov1rf836gjppFMOVxgDslFPl59NXI7HFhm8Zxj2TaxlT262ILSzpjJHDnMXcs51D7nz8v18tghvuHf+0IJPpYkiV+1MBMp1jhQQBBvTjOlg9BjFqilCmq6D+VoH2F/ikO/p0GLX+l1oouPS/gwS13e1uewVdMed9G4LokW35MZaKEiRaFh4NYMPCs29gdpLMJb6Gmv3QEPR3FJMs5ONVu/X8Q2WMASrqywbtWW/IAhtS15ZJ8/ro5i1Kbxu3PDIt+bDhhZLiHxCRRaMyPci1VlOqXe/R4xL8bOX0jxk2n+Sux5IUr0/BSBTrHBOJHLY0JrYb+FPTr+l47nRBMhwB86k/0DTdwEo5J1CpP7gU3fnO9tougOSkRl9sByake7drx77t1uZZvuaVYJnmExydFHOCr2SZ/IooCDJ9QR05gGdLDn0fEEaxxJcKAixmLVTzZEGgf1jyKXQj5BP0MLvCWN863RXdFAAt4HvhnMSkdRGl5y56S9ruipJ+fazpNbQJuJ9GgO8is7VR8lDKxFUhO6O/9IGdsf4zZGZ1P2KZLMkyXzTqAdpOD1xQtSXEXCxMNBL8uhm9LdU1CjEZDox8INA/FqfLg25h+M/14OTbwiNsT9NBrPpuk7jGo7OUCWtoVw 3n+/99Xh yJKtdpCK1Mdk9TrAK1WK5OdGr4Lj+DSSBJeD+9y4IBti2DUM9kLpF07Iu8luD/tA17YEzUc/+AiCXL1ZGsVd8gFV2Qy+kF9tqxxs+BA9UFQwgg5/3UBOokZyKjIUYMDuznKkjcg8ATJ9QcE42Fx54vDhAmo6fpHI4o20vq7ZwwtGK7ZDvLCbFgCGR5OnBYYd3zvSCXUjLC4lNWkBzi8DlZyv2RBKDDjJxzjWWFmyueTkSzEblZ2dINBoM93K9soOnf1Y4tlKOYSb0xKyW0jt3kKCfULRYoiyvUjzAN4oKTKH+pkkNEn98/NMfyd7FtqRkqWIXx5OfU/fl63ybAl5tNHwe5us0IyuvngbvIHN1RexRjkgqqyZ+fXY31nPHNg2cuKMMZbp9Sg+dYG1aYi8zCLkD9tm70gxmnnGB 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. Acked-by: Peter Zijlstra (Intel) 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