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 15D1EC83F03 for ; Wed, 9 Jul 2025 13:50:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A61316B0123; Wed, 9 Jul 2025 09:50:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A119E6B0125; Wed, 9 Jul 2025 09:50:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 927CB6B0126; Wed, 9 Jul 2025 09:50:34 -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 7D5F86B0123 for ; Wed, 9 Jul 2025 09:50:34 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 397AC801E7 for ; Wed, 9 Jul 2025 13:50:34 +0000 (UTC) X-FDA: 83644861188.12.EE6DC61 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf12.hostedemail.com (Postfix) with ESMTP id 835E040004 for ; Wed, 9 Jul 2025 13:50:32 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=trlDt64N; spf=pass (imf12.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=1752069032; a=rsa-sha256; cv=none; b=EpMvh78KM6GZ2wbd4ejJFrgAmm08BAh8wJdS81NstH9UnRWlzLZgbTYAPIGsKhTWtE7v8I mZsMxiw6fI1+ioAXrHmVCI2qnpl6+o9x12yCLZ9cpzVXATVaYgWB2pHtDOaGstsbny9p26 FQPi7HQdRYhRAW1HlzjH+CBttTTzcYI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752069032; 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=apg/zEMP2KmR0edCjE9BUlFF34hMOdi+4Ryx6/vbfwkJuI2y5yTjiXIITkyg098uNQSENw QHlRiwctBc8qID0JBH7/vg0cL3Rtw4bx0NYZX5TH8X/tcSqyuvDW/6X/e2w7wz3JgzGuok s3z2wJnPE6c4eh0rpczHkZeCRsrGtXc= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=trlDt64N; spf=pass (imf12.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 959064392A; Wed, 9 Jul 2025 13:50:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1C52C4CEF1; Wed, 9 Jul 2025 13:50:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752069031; bh=N93fx/HWGQ9/7LBI0Q5dx377OnCZ8CrZ/OhiD9v/Z/8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=trlDt64NjQr+YNI3YqHEnv8JUfRpoVlxLzQ/crT9viR4cVybY711yJ93jqAp8di1r 4ZnpoAlyw6iExKdqKuy6yItzaWCvmRURcnmZmz3E50KG1GeHIvoZYn/P1QLqb2tcT0 cURqdVH3el7dcyxuJ5ThweDaFxa+HNBfnY4351EyKawHIpbmZEEP/XZvM7wWf+4R8i VPYsSyZiuU0050BIqiaeeE0xywTbJbJhD3aOv0l4iGMFrPZ7arogY31V7FBlNqmsGx T2DjoS9fr0aqMNeafd/Rg9OkMwU4+KLfFx8b1dEl6oiYW5gH3ATdab8I/QR5+raALt 5PuN3SQtLb2ww== 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 8/8] x86/ftrace: enable EXECMEM_ROX_CACHE for ftrace allocations Date: Wed, 9 Jul 2025 16:49:33 +0300 Message-ID: <20250709134933.3848895-9-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250709134933.3848895-1-rppt@kernel.org> References: <20250709134933.3848895-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 835E040004 X-Stat-Signature: ug474g5uk471gtwdopgb7us3yyfzfxtz X-HE-Tag: 1752069032-811304 X-HE-Meta: U2FsdGVkX1+fYFOP+1fPqyUx6Rp/68XM10E/veS6UJ5EqrcpdTqEJsotk/CACEHm+IfB6crbNDYxXW9S0VjxJrbNfo/wSgkNX/S06fy71Qpzx7eS7TLUZZwEI2E5/pol6QUxWDSBULUJRfM5gZ1CSeL9Qq/B1iEvHW49EkcbXFR5RajNJzze84C74G5DHS2ErTLH9oCHlx/BGsCSCElAf3aWcY7M+T9aBAQtSaW+NPgvfYgGnMd5ZNzTmlUa5U71Ydo3Fdho2RVFEHa9taC0z1jCepU26wV5YMS5y47PQyPRjFmhNCkgRE/+CS0PqTII325sL8UM2lemOyUpTEzBzZ49/vUiGZJTVELKwL+PgFddr1+ONQRY8Bjt3bmdDsoZVvyQhIvL5m39Ic1wdaLqLFO3lOewztc4VdWejNaCLCKTquKK6cBrHKmSNKA5nX6CKg5XJZDWRpob2dCZ02MQnNg1lIbxuGDvKeLQ0O17Zl24Ev7TR69v5kNUvuF0mO380DhySW5up/49d8022nD15OMVRRBPJ6dVYNnYgmY8s6UcFf7p1d4m3TIJBfqLgVDjtn3v2ym5iIv+89ErhIANerFDX1z+baekzBO2Z+Vtkm4NEt7ANi90CCR8R555wDd5RtUgyW6d8UuWC3i3fZnMLTkiWe8yS6QEt66hQFkK9mmiSvY8MAGxhhUEIAUKJ91xTGQ6OMUYJuSgywZ4wol26JI7tSEiMHW9aqhAl4uNPBKXS6ijQsgAkDy9RJgEWCyjcO+DbCWT5bmNuOo0dzYsbiku8xy4c1rQgdK1R80zZElCWemwrCfTWjN7GugGFONb2EtSv8zx4Eb93HffPreqcA3N/hO8emA+bxdPoNqRewVMRZkLTcJhbP8351NKJlutmNhM8tBq/PgoaM+1Ak1TmiSdCzaRrq3x9IT/PVxnUQU5qb7vcTpRMKd44y5nS/PS9Ai2Qh6zVNUFahP+Z+V I3b7s3lX 7c1KJKvzEHGudIinbBFtpTVPMP9FMvHJQ0fgW7737XdLs0utm7iDlDrpu4TFmcnd17wEU7l8JsrkprMMOaw1IS6FOtesEF074X3O92F/CPuRN2lYwhTaaxr5MCWcvzYTuRTKykMy7I0tBXu+xtu9wsGxW5xUw17oylb+k3Pt30PCNi9gzv8PJydSb54bT7PhVucECZ0YFyprRFQzgNviplfyQieW9Yg/DZ/61kVeOeg8ISh6h/J73FwhCJ6v4btMauA2OdyCeukez2U/Bl+OdJGuAF/m4zjRqQbNSMOD48zKyaMd3ZRBHU4Rgs2zX9/EvGvbBfv4GTcCufaggTP6uO2U1DDo74nWqzbV/ 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