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 CD5E7C83F03 for ; Wed, 9 Jul 2025 13:49:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 704276B0114; Wed, 9 Jul 2025 09:49:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6DB996B0116; Wed, 9 Jul 2025 09:49:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 618676B0117; Wed, 9 Jul 2025 09:49:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4E9FD6B0114 for ; Wed, 9 Jul 2025 09:49:46 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D8147160235 for ; Wed, 9 Jul 2025 13:49:45 +0000 (UTC) X-FDA: 83644859130.07.E147B4F Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf13.hostedemail.com (Postfix) with ESMTP id 3C76120011 for ; Wed, 9 Jul 2025 13:49:44 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=h8+3b0yC; spf=pass (imf13.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=1752068984; 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=DmeGX9W8wBqRpYVP0YoQvnJbP4OB/CU9SZA43FUU3J0=; b=QDL07SGrkUHx5i8+QKNmZ6L11PP5vYJMLL+C+JDE/7jEmxdkPmHxtxV/xk/ZfNBdwdVkuh NP3VuNFpXMMXDizObE89dg00c7aUdR01jWb6wj8tozGxN816eCid5moJxa1mY0slKkDgcn 1vFB1VVixjrsQ28EGnLHzhTQiMBdkvI= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=h8+3b0yC; spf=pass (imf13.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752068984; a=rsa-sha256; cv=none; b=Mn/fID9xAI6XDCVjjPlcecOY6okA3Xlu74ApZ/or/m/NJ5PiB/WttXXmIj9ESZ5X2xKi7m mewUyqFLiJhzdKL5EZ45BY2QChCuAnxpeTz7OYQdRzfW2U8pNwHfctWeoKEhBhctRK2S8B yhiptotN0Cpw2ZGVdQBcVrIJlKeenxw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id DC0A146C06; Wed, 9 Jul 2025 13:49:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2803AC4CEEF; Wed, 9 Jul 2025 13:49:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752068982; bh=VN2woUV36uKtPWLPulMKBWZsAUaYBos7bihIOQt7JRk=; h=From:To:Cc:Subject:Date:From; b=h8+3b0yCvh/DCn7BroIAnU6+Ecnmx08FcxAgL7q/b90kZCN17GNfESOsQbawusi1P 7ouY11jmMuVbl2o0w7fI7IJb8VN+945vVYRXlY2WkwhKK2nUD2WMKzmtgDCtuKJDeM Z2Kkd6fqWBvGYhDf0f+En/dIFSuGkJyLyjpfHX+lBzjILmJJ8ZwwarOG/moK/SGJsR Sdk5cwcEOtCPzLy/JX4k9VcXSERJpaRUI0y1XrpcNVatww1Ivo1q526DYND3P1+Cg6 9k/t+ujYo9y6j4ZPVI6kXKZLVFP6bFLM9zu3+RqWUhEwwAoeW5BHl143owx7lginPa bYNXCQmM52/Qg== 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 0/8] x86: enable EXECMEM_ROX_CACHE for ftrace and kprobes Date: Wed, 9 Jul 2025 16:49:25 +0300 Message-ID: <20250709134933.3848895-1-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 3C76120011 X-Stat-Signature: ut5uew9yyy7ugu6m6thzdqd751tcc7gh X-Rspam-User: X-HE-Tag: 1752068984-483097 X-HE-Meta: U2FsdGVkX18R5jXtmRDR3usHIm50/oJPImXFfvCejcD2fTCB8lJD+mV4WIHD5sUkrue9Hm5R3u/MTYUgd98IX+IHWY/5AegEpJ1iu7BC1AcU7TcTkNmxZ7p5IcFs1vtGP9OFwrGx53+nq84jltMZT4M5/pNq3WYtIyAUnA4DRHoePH/utt7DGy7OMlWO+E7Xhq+JqhwJUrnyUyD/kVVOHVSFLxBO6fQ8bgC+W5ghpvX2rjeZauzT15iNQktKvElsxZJeq96zAbqf0hGPBLGi7BjXhaOvfrdUlOiw1vFOJAtsakc2bSOR1qFb0TT+JoxtK9gJONxl8fhiTq5hsRntlOJpG/pDxw0SZ3G82xSN/xrqO3mpAHkcFjl//A1i60cAW2l5l1543EOL0iBbsg8MMFhrAVsylbfMX1sxiwpGYpS6DcJeenkuDdvL9NOX7jhgxNHGtzLPfidPulFyGJ9GBDNscT0KSLOo8ZTC2ch0wjtPc5qQAh1sDjQGd1f62i7TXE1AYUM4vbqvhYOEMqi3sq39ueMsUO80ccCyegQCy3O82NZDi8EnyCqItks3TD/Bl5RR8phfXGtPGJ7BDuJzhte4Zx3INwRXWvHcVEa/TZ8Dgk8mo0ke8GSiI0952/xNymIFEKwHJM7sfT80oI0s/RF3nDtT3cx6pKSKOlv5o5MEya3ReTyVHqfGZ7eiwGfUpMGtQE6LktrdoztMJ6SId0eWa1apMN6PItoaonTxvvMhVM39cXHMFbbqEH8BUPCoXgNK1tbiSRhmVOKdzS1f6r0Vc/MJDRcSbcJV2XQ7K4GJoePhUnREDmTjsXfro7qisTZ27ptMba7cOX5ntDB8qYxj7Y/apd/xFJLD0iFeU9TGcb4TQcR53kRKP53u/f1YKvgFm6t8xTBgRb6VKfvBbpu9slepMJ/ZKl9WW7waRcFRz1ZXHoxWTB+2nKVWVb4RwR7d929mR/zklf5C8ob N8KLcth6 qAwJrCbOvp1Jrku2O+m84OKvZ6FHtrhkUNs+L8W0qoGnSkbXQM0XU4+OcDUqJZCQROldCMzIoTO/9dWdBVHdiL6G6F4uM9IWC0+MMSYnHkUYloxQ5Ls8KXJmRkgBkgqcvejP/w6Yswp0me9liXnIXZ1/ZKQEtVQrzpyN9lWaGYzSfdZRU69KBtI5YdeTRFT2fGLvxOHgoC2Kq6Ie1EPXa3f6DkoGUkU4ibzWMM3a7q8xayFLFDr6GQSpuiby0Buvw26tSIbh+z+deEWYpA2nNK7nRSjw78iGtIuU8vmRYKOLiJqXLq/4YJaBX9gGo7wshpvQg3wwr/4OFLgHDENfCW/HXN5VMQYteSAnz 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/v2 v2 changes: * 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