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 D6534C83F17 for ; Sun, 13 Jul 2025 07:17:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C22796B0089; Sun, 13 Jul 2025 03:17:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BD3F96B008A; Sun, 13 Jul 2025 03:17:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE9E26B008C; Sun, 13 Jul 2025 03:17:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 9EB726B0089 for ; Sun, 13 Jul 2025 03:17:43 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D64DC140345 for ; Sun, 13 Jul 2025 07:17:42 +0000 (UTC) X-FDA: 83658386364.03.D07F4F0 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf17.hostedemail.com (Postfix) with ESMTP id 510BA40004 for ; Sun, 13 Jul 2025 07:17:41 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=cj9wKHy2; spf=pass (imf17.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=1752391061; 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:references:dkim-signature; bh=NQ3u7KaNeBn/4JYt2GiOHDWJn5uAt+MjNXI/hjRp6hQ=; b=Ds+Z/XFyhNg5FOoeye/XftCuWwnqp3XsvJHjxomL80XgdQiKmdHfYMBjFokBKEOnlcgDx+ 48/NCj7Yh+/kLQI86vHa7queLihnM3k1KBX0rw35DL1xkYxle4UpN6Mh9Bh8szbx4KIHl1 VyIwM3c3oKVmL1S5sGuIurXWvslIMfQ= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=cj9wKHy2; spf=pass (imf17.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=1752391061; a=rsa-sha256; cv=none; b=7E7hTcbSD2PDBP5BA/tk7Flq8YehUYqTNQRdpVOfYMJzNWTxqvNBFBRnajwFGDRzcgQspM 2LyS3jmEmuzjAvb0ICGgOgj+VasfaTyYPe8vNKQOJwM/ddqvDW0Emr+KXdjXzH367nxFe+ x2kcDroSBumcPVxipiprFpS1nkphlA4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 71B8E6000A; Sun, 13 Jul 2025 07:17:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5CD38C4CEE3; Sun, 13 Jul 2025 07:17:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752391060; bh=sCEGchPk57A1a1Hap+1jxUD6UZPcz9tgIrKQpcRxyis=; h=From:To:Cc:Subject:Date:From; b=cj9wKHy2Rk4JCQgZuB6e4IvnTq8AWaZ5Wv+qxuR6VlwQZDx/jsCQJshf1KNE6q/0A xUM/vTsiWCZ7I0YPS4Z5bk4U1XOGx2oNlFKlS2ZCH/Wqa5A9svaIolJbcbAtRx8o3r E5V0MfYYueJdleQO242WfkDTZDVAD0fjyJftWT+d7SQsz055+uKD2YjArZckuBocUH 3mC+KHG33IHdCqRtu96zmTulgn3n6vgKjjJG5O7QtjN9zxAkq9+ZddYDRgTn+MxkrV vnOScBdoJJ7/dYe5ed+B+a1YP4yrc9Oq+OmmLSfYuYbmwMt4+S4K8Bm1kbt9p6MQx1 FAy2EghCCyEeQ== 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 0/8] x86: enable EXECMEM_ROX_CACHE for ftrace and kprobes Date: Sun, 13 Jul 2025 10:17:22 +0300 Message-ID: <20250713071730.4117334-1-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: 6aca3ytrozsor1naokew3xhmkyr3wjfo X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 510BA40004 X-Rspam-User: X-HE-Tag: 1752391061-330762 X-HE-Meta: U2FsdGVkX19Zmerc0YkC5CmMH+FPudt3JH0aLEitX2HSh/IHYCDDH7Lu9+SgBcyMXD74mdAGD+LR+mr+WgNZDi6wWPH8sOOPNc9q6OYb49SrOiMayuiQY8J9W19l8fOzXpASuXvq7QQ3+DoY5WHqFiYNOVpBuBjHCtG9Z4G57io+eBrm/piNQtoB1SIqGMyhG51Uc4YyGZ4797Ahsqt7AS2zVxs9d/hIyLYN2t3CAF49tano84PqcxpxCvw9vZxZa4/voRSa+xI4+Byyi51JTJD3BBXq60j5nd//XhZUA9ff/X4lu5c26OaNcSA6deFMhZGzgCQGnFGatUjOmARUt8MludSmaRf3ZuXf75w7Kc64c8ftxebtUggP+uIVfPEyefhJ8mDtUSUlf48WZ85R1pmyepkSElQXZM24N75qw0bX9i4dCehBI/oTErDmZh1W5heCDL010g8iQc6ZboguvAvh8irD62okifcDWrUWD0+cd08JxCJ2yYxBiocQPgbDCkwHv06o7OB6HFh0rKOW1J9byTtfAjHXyhMtiGy6KAU04tLKwsTf8qf0aIh3OE8WQ0b4rQu23D3Hgv9bXdlvL+SEp05Nsw4YqIk+gkKsVBemeeYFF2kRLl9yW4pxMvxat+zLws7PL3FS8qv5r6tIzWL2F/44wJMpLlKUGNKpFBgx03w8gqKy6oqK1/Tk41WgzBmuAvCASrvUv+tzZHny8g3fHxJpJewLhprjS6/vyxVjB473J31UhVEz1P2c+cc1ZDwNsMDjj6ssRzNgzRbLuFHaAXOaLh7eWoLvyV78LLheSV7pbTHKHyGgFCQy8QB18I//a1Pu632GIaenFwHFmm2hG9ZAN7yhIJhdwV2zSUDKHKu8A7h0vWQB45SJtbgrdkBkG4MYD1U43OtuoI87fdE9aBBedPmvo4xojtsMoXVthd1foY66eulLpKISe7iwENLquUpssTHIyxqliof Hi/cWnMv YNH4XpZVRBKo0EDiiHwlAoF8Wz+2fTkrGnoNHHmkCclEJTU2gH7q8fAxTLUlP7Nv07uvHX1IEIU7CYsJRvQ6KPRkf8BC5NaV83SaFsyfsQPw6l7/nC9YpAzV7a/loYV8p42LnFlyG/gLaLKAUS0J25M7PAKGmeGytnmJgMl1c8WzJLrM7Nxv4BhoVe1Qog74tMVlN8AwkirKhIHhyzoR5W/r+kn43oPiMhZfX4QlOsX/Tuu8kkXy3+gEFMsXcy9iGE3ndAivNL14tyBo0KC5KjSLqENqr3GoCQZmrEcYhKpdB1AIV0Tor7bQmR0hxw31p/N6rUZrw2rjuXUVofMmMLUKOUa0srrSRl7YW 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)" Hi, These patches enable use of EXECMEM_ROX_CACHE for ftrace and kprobes allocations on x86. They also include some ground work in execmem. Since the execmem model for caching large ROX pages changed from the initial assumption that the memory that is allocated from ROX cache is always ROX to the current state where memory can be temporarily made RW and then restored to ROX, we can stop using text poking to update it. This also saves the hassle of trying lock text_mutex in execmem_cache_free() when kprobes already hold that mutex. The patches 1-6 update and cleanup execmem ROX cache management, patch 7 enables EXECMEM_ROX_CACHE for kprobes and patch 8 enables EXECMEM_ROX_CACHE for frace. The patches are also available at git: https://git.kernel.org/rppt/h/execmem/x86-rox/ftrace%2bkprobes/v3 v3: * Fix spelling (Petr) * Add ack and review tags, thanks all! v2: https://lore.kernel.org/all/20250709134933.3848895-1-rppt@kernel.org * Fix setting and clearing pending_free for an area (Yann) * Reorder execmem_cache_free() to avoid error goto (Peter) * Add comment why mas_store_gfp() cannot fail in execmem_cache_free() (Peter) Mike Rapoport (Microsoft) (8): execmem: drop unused execmem_update_copy() execmem: introduce execmem_alloc_rw() execmem: rework execmem_cache_free() execmem: move execmem_force_rw() and execmem_restore_rox() before use execmem: add fallback for failures in vmalloc(VM_ALLOW_HUGE_VMAP) execmem: drop writable parameter from execmem_fill_trapping_insns() x86/kprobes: enable EXECMEM_ROX_CACHE for kprobes allocations x86/ftrace: enable EXECMEM_ROX_CACHE for ftrace allocations arch/x86/kernel/alternative.c | 3 +- arch/x86/kernel/ftrace.c | 2 +- arch/x86/kernel/kprobes/core.c | 18 --- arch/x86/mm/init.c | 24 ++-- include/linux/execmem.h | 54 ++++----- kernel/module/main.c | 13 +-- mm/execmem.c | 198 +++++++++++++++++++++++++-------- 7 files changed, 194 insertions(+), 118 deletions(-) base-commit: 86731a2a651e58953fc949573895f2fa6d456841 -- 2.47.2