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 72C18C83F03 for ; Fri, 4 Jul 2025 13:49:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F8156B8049; Fri, 4 Jul 2025 09:49:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0826C6B803F; Fri, 4 Jul 2025 09:49:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EB1EF6B8049; Fri, 4 Jul 2025 09:49:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D297E6B803F for ; Fri, 4 Jul 2025 09:49:55 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 6E685583A1 for ; Fri, 4 Jul 2025 13:49:55 +0000 (UTC) X-FDA: 83626715550.10.47FCA43 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf19.hostedemail.com (Postfix) with ESMTP id D16B41A000D for ; Fri, 4 Jul 2025 13:49:53 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=CjlGXGnZ; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751636994; a=rsa-sha256; cv=none; b=4Gi+IWdedtngfx+90UVAEAwKTSRH5WPXqIx+IqQT5MfFV9zWC+66oyXQ6IS+sK89W3pJ5T HRc/8NhORIVgTWAvarJ+uURpeibDKDJktULgjT4NtMel+xqT0H4QN3xLvd+tlrdS74uFwP HBxBHL9YidfIPmw/iJE2V9AbRK/orJI= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=CjlGXGnZ; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf19.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=1751636994; 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=nyeGgrCNeVJaAEc7s5riDPr1IhD5MFTBQRxAYrUKgfA=; b=D5NzfM45lzQfhuLYd8xb+xIK7zV6rR3VY1lG94BziU5/fzShvguU+reL44tgch8m5yHR37 GwZGnTk7EgrVP0hy0MthOkwcoDAG3dYCLekNL+1FapVexlH1EPIUZlaL8BpIHhf+Kt2MZy dy3I5YI0B+i/zzrQmJQruN46NCRyu/M= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id C85705C5C87; Fri, 4 Jul 2025 13:49:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CF03C4CEE3; Fri, 4 Jul 2025 13:49:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751636992; bh=RPKWI41dVFPie/nu06bres1q6kZy+kb86c66f3Y/tZA=; h=From:To:Cc:Subject:Date:From; b=CjlGXGnZNUQ09Q2dji8FQ4JJtKPMwHPnjkuQdDJ/5x1ilkHQHVqrdaHScxCFQSZRj FbOcjmD1SAI9b7K9+sfxm6JzxFvXfSnDREJPOF8/MiEttxvj6DlttNTHGmvu2IidWG 6waL6vHe26+TtUx6cWEGc498MtOWmzzt4Wz9FVORUUINvHGDbtINdXjBqGnIpOw9Cj 9dKFEkT0gQBlpxOEpA1KYgaLL5FV0SdNmljhBVJn/dcFTr1DE7Yidcl1J/ORN54oXq dG/QtNlMlHEiUtWAlnQuCwS32P9KW3stTlCADhLh4VZ3k8nq5mlGqQn2YMpuiNwxv3 2lMuvwHCWzZpg== 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 0/8] x86: enable EXECMEM_ROX_CACHE for ftrace and kprobes Date: Fri, 4 Jul 2025 16:49:35 +0300 Message-ID: <20250704134943.3524829-1-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: D16B41A000D X-Stat-Signature: n8jeuct5sn3isbeytmbfmzhr9369p1ub X-Rspam-User: X-HE-Tag: 1751636993-295683 X-HE-Meta: U2FsdGVkX18RbtD2Crl8XV+Xcm8Kb2hQHVkZn1LfBUzBQ2QV0Jl1eQ1I1Dk9qyXmIIp1jjuTpp9n7GAy2biPrOWXzN3ZngtkG+j9v43CtEDz/iGuXNBK2t2YNfkmFQt4Tx1EPpbfsZ+AB69ESY2gu522775VP1cTv63kIK8yHr1JbtmrtksfB/7gSLXAXaW0MOgmn2CrXza0X/vBS2LRZY9pHsoi5Js8Rvi0fXCe3lp/JC1n57hj2fK2xDtXPE7M4wUblC8Q3wnFdiMkh73VyIgLp5KzwgkFM+bH+R3rNNbK24EiBwURFqTjt9qY8tn0SS16ZDkBtqK8ATnKnR/AA6NY0du38WzHN/qwWaxNaOF0NJzO/k4R5l4LLoToC4Y+0Plv+gOozdodwHpJibcy5IgDsczepw6oJ42hEacdmEeoX0h5yX1kDpLAAhLdZ2v8rTLFmrbG41hzvOA3ipbjb1bhcobsStzaiWK+wHzbDei2OhZVKuwRwWVKfcG5URz9Ut1z6Fg3ZXyCjms1WYv/tmKOULHjAzdLyJXxzdVCwJPrD2UpYB9VG+7kNMC8g6zM5q4v2a3Cpe8qQUzvVNa2jwInfy38ZujnAB8jL6lvq1EgwJ4QuN8ZfKQ0OITWL3VD6w2annR4+tfuDlLZohsMmTkqZQyMlzg4xtVmPv3SxNxnmpffyoKPYrB3Qf1tJJVDXHWvY6dbAHp5vlf/uJ2gqZHNSSYPdDAEYAek7ZAQEHEyxWYgo6E2YioiBGAgqurxIN8oEnQx2zG6nyMuvo8833mXrzPKy9JiJtlQftF6bYU+kqfNmqQTxkSoBCeVVpNugWIgZeIEZz/x4u23EUKLvRkaINVHHnzosFIn79oU8rFIfNrxzdp9Z1wlZ/V7aQ6iM2p0PPOEYURl9jQn0ni0IwTFT3n18/aZVsbM8hj7AEktHxankkofRBKrDTRLB+58XNq4738o11c3ZOCWGfr Sgug+HU0 sE0UGnVoQEEnAyx5GsUuIRrazbce4kIHKr6bsqVaFRa1wTukEiP75WhS6Uj2q3aoC4pmFWBpyqX00IRzvNmOB/k1HxUPdTZbcWAAEuCiYw4sws8T55c2Nl6tZlpighnSAD31Ra+iXgz3HEbALJcp871zWPXvkF4sUSk4b7sJc5spEds//BGhzDRlYpHNX7YSlwqRc6P04HS67lGFaRccBttMuK8lbtuKffdGJCvdUiI0aX3328YK0iy+N4PJZUBSh5bPMPcU2obzAw3MdQ0C0ssYwDA== 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 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 | 193 +++++++++++++++++++++++++-------- 7 files changed, 189 insertions(+), 118 deletions(-) base-commit: 86731a2a651e58953fc949573895f2fa6d456841 -- 2.47.2