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 14DB5C83F03 for ; Fri, 4 Jul 2025 13:50:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A48DF6B8050; Fri, 4 Jul 2025 09:50:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9F8856B803F; Fri, 4 Jul 2025 09:50:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E8216B8050; Fri, 4 Jul 2025 09:50:39 -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 70E6D6B803F for ; Fri, 4 Jul 2025 09:50:39 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3AE09802AD for ; Fri, 4 Jul 2025 13:50:39 +0000 (UTC) X-FDA: 83626717398.18.44AA8EC Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf04.hostedemail.com (Postfix) with ESMTP id 8932240005 for ; Fri, 4 Jul 2025 13:50:37 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IafJ5zhz; spf=pass (imf04.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=1751637037; 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=rUyVL7LUYN17YlI3dP8yKOE028jjpn4OUou81TS/yvU=; b=l8P10q1sqWd+gdllb+2tQALaQWHtYQn21SHTz20m5NaLbAjJDeij4uIqJmmz90Oo9Ria2w KSWaJfJQTT4fXNl86R7Sh5T268VkOlN6lEGqEJFTLQRm88e4eodNTbZsNF4STJqttTpTT2 iSCFUuaBT1cx7LV/WLtjgC/z0LTO/eU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751637037; a=rsa-sha256; cv=none; b=l6ZspYkbfs1zDA0j5lHa+BNwWrLmyQT/vZcu8LfzzzCVkN+VlO4Gi0StU8kb1OuxjC7SYx tICkAfQN5NcNEnGuCtvfNIwWPm26+Y7EamO4PskTbGwnsbupX5sQbg//t4WfLITqB6eyWi 5gyNHRqT48njVsKI6ei6n8elFiH8bcw= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IafJ5zhz; spf=pass (imf04.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 9774F46930; Fri, 4 Jul 2025 13:50:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 716F3C4CEEB; Fri, 4 Jul 2025 13:50:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751637036; bh=N93fx/HWGQ9/7LBI0Q5dx377OnCZ8CrZ/OhiD9v/Z/8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IafJ5zhzJJMzQ5RvGFz9jHElZlpQS/cEpbHiJxGptp5RZk2uaNXSUmlxru9vxG0Kb my6sw81V2pUOKJO1VNXbXkyX54FcpSGrYkNlcQ/zC2JzREUevQHixwULxSwoZP/0Ao L57ARhp2EwtWbNo4JI2cnYce4L0oAVLtG4KnJPruYzna/Ruxpq+TTi3Xed2SikeQCx G0QZsiDA0BAqUNC0WiLG5StfJgJ7NHGRRJSNizFGe+xDAEuQrswFi0JvogCPgcbwwV 53cCDyXsz+5McRnjUaaNiAgEigDmHz7JsdAkKoJqHfzCVV1vqibVOyCx3Q6UJM33Dm j1LzYJybqnstw== 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 8/8] x86/ftrace: enable EXECMEM_ROX_CACHE for ftrace allocations Date: Fri, 4 Jul 2025 16:49:43 +0300 Message-ID: <20250704134943.3524829-9-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: rspam08 X-Rspamd-Queue-Id: 8932240005 X-Stat-Signature: 6oyn6m4ct8mhii9frx4w1kp3u7ohi85i X-HE-Tag: 1751637037-157297 X-HE-Meta: U2FsdGVkX1+Cgw3x7xLt0CZNxl9GfrKaANNXcn8X6A4fvYWwiskHOn425UcYyND+NeA+Ssvqd2pWBPbjadIJFEs+h5JyY5ROktjrSlF9SI5bgfEotNz+rvpObkoMbojv04HDdAw3p7UdcX/paV9IJoP/GpctFGovOIxQIq8SU8mEczbzctyjoDyVVYMct97qOcE1+jXsVfVW2jFeTATTn3Wd5t0/g+hw0gIhmzKRp07nwLTPQmfQ499NP3KYeyB/EELCFUERtmHcJ/vdLz1J4xvV9PVh9r6blm/WBbi2qAcWEFrO/EAAj5MNuhQ2UWlDQgzJnuxlwz6psOqcqCtFW34yydx3NCpTtYXIkS6oRu9M97wJEjUC/P7dbPKZBfAqHvhW5WR2YQ39muQphRFdIMo+VHCJTx5t81GnwRuasLiyvU60fse9h5SLeBu5KZd58m4z62AmOUHbJIQw3zU0sdcfAw0uKflv/kBbX1BnJwe9v1Jsg4cOENE8dJbAgMNgSuFC13DH//Fo9S33tKg4ZIZehIhWXCXO4WjehfeYOzclQSuOqI6tpLRSlz9s4Gw6KvDRv4IKZi1EdbviS/rzo7HvOCl/89FQBwA09/HpqKUbXVmQrdCVt/+DRIQ2EaRoAojUPtLb3gb7AO5Ox1xwRkuMS86g7c10Poy+5OIrJN71agm96F0MwOmHeaq030+v9SrXPUoB+yGccq2hWR8vy5OEedpKOA41u1qvSYRctV8KVLgYFkzKe+SSnfCd7LVv62w2k6B0loKYy+NqYLJd4MMu87poN6CCwrmmy3aPQRaQALBM8mKwd1tf52xbeh5u4SiVzGhvXKKiNzchh/sHRh5OQBKhi3ZxlXivc3uaZzlpy4u4GDMcNBsA3q89piXOk18Uo4siIDgipzjMIAlbE2HZFZOKLBU2EdAXO7+lfOBhWAavpOPlgwcm5ghrU5Ed7fCArKQxz3eyCw8i7ZS XKGQ7uMl 2F5m71BV09hsg4g4xi7lmlWSaTAu2z0Ga08uGfbCXu8eWgoa5jVV3I10lBxEU+SlKSvgef9+5c0KqUQvREG63mnCVjZivCnQHaCAUUcT8f4ivoCsSjYd0i3PTzoXllG36EJCfwQINYpFtBK4pEqDYsPVQEznCqEHvPcOrCH39jneGEIMUqCKpo7oYW5NFHdnhDnr/WlbnhVC/9wuUQ4WJVFbZhg9uTkd4U56vvYL1srx+iHCUxIt5RVdN+7FP4qwj5L4XuXGrAuQKgVhheNQCGXNUaw== 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)" For the most part ftrace uses text poking and can handle ROX memory. The only place that requires writable memory is create_trampoline() that updates the allocated memory and in the end makes it ROX. Use execmem_alloc_rw() in x86::ftrace::alloc_tramp() and enable ROX cache for EXECMEM_FTRACE when configuration and CPU features allow that. Signed-off-by: Mike Rapoport (Microsoft) --- arch/x86/kernel/ftrace.c | 2 +- arch/x86/mm/init.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c index 252e82bcfd2f..4450acec9390 100644 --- a/arch/x86/kernel/ftrace.c +++ b/arch/x86/kernel/ftrace.c @@ -263,7 +263,7 @@ void arch_ftrace_update_code(int command) static inline void *alloc_tramp(unsigned long size) { - return execmem_alloc(EXECMEM_FTRACE, size); + return execmem_alloc_rw(EXECMEM_FTRACE, size); } static inline void tramp_free(void *tramp) { diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 442fafd8ff52..bb57e93b4caf 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -1105,7 +1105,14 @@ struct execmem_info __init *execmem_arch_setup(void) .pgprot = PAGE_KERNEL_ROX, .alignment = MODULE_ALIGN, }, - [EXECMEM_FTRACE ... EXECMEM_BPF] = { + [EXECMEM_FTRACE] = { + .flags = flags, + .start = start, + .end = MODULES_END, + .pgprot = pgprot, + .alignment = MODULE_ALIGN, + }, + [EXECMEM_BPF] = { .flags = EXECMEM_KASAN_SHADOW, .start = start, .end = MODULES_END, -- 2.47.2