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 885A5EB64DA for ; Fri, 16 Jun 2023 08:52:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 23F416B0078; Fri, 16 Jun 2023 04:52:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C94F6B0080; Fri, 16 Jun 2023 04:52:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0419A6B0081; Fri, 16 Jun 2023 04:52:19 -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 E9B9B6B0078 for ; Fri, 16 Jun 2023 04:52:19 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C0D3C1602EB for ; Fri, 16 Jun 2023 08:52:19 +0000 (UTC) X-FDA: 80907994398.02.65B129F Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf09.hostedemail.com (Postfix) with ESMTP id 23ADB140016 for ; Fri, 16 Jun 2023 08:52:17 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RXsNDUtY; spf=pass (imf09.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686905538; 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=4pr7ZKCip7Tu4MI5t1/9CsCaDYOnfaP3m5M8Al8nLKE=; b=xUfYO9mXc3GfUYUZjD333Dil77EdVWSEMe179rM9p9a2E8xi7AGhXSO8U6UloA/WaFNjql KUEqAzYUprwG052EBEws/PWJ82z/Ok8b0WQSFy4kB0xVswqxrv5wkYW+mkSu/4VOjCx5Di 7HgqVwy7re9ZNTuWyvUK9x5s6zSUnDA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686905538; a=rsa-sha256; cv=none; b=MwnaHfbXE1HXBHavc9/Sp2BgH2OkCMaT2E7mpARCPbiNcaQMvnsSJsCpt9LP01OjIbboOK oHzyOSd9X38+KswFcurGPqsOw6R2sMYCsZ46ph5Ss3R9Z0sIre8WG5VAV2d0zvlGu/tO8B Iwt49IzBCFuJGx7vZo/p11LjmaPHDz8= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RXsNDUtY; spf=pass (imf09.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6165062D14; Fri, 16 Jun 2023 08:52:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E3C5C433CD; Fri, 16 Jun 2023 08:52:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686905537; bh=QpRLaiTQjkFAZbWC8PMbwO4haV/9se+uMBjn/xjk6Eg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RXsNDUtYj249KQAhJs+wEQjCxqfjKx6/L1Un4qq+20KcffdZ1deQG8lIIT7DV+ZMq m0eHek+DKutrTD2bY61bqwx/MvyuFb7gWqbU+m6qEsiGCLCvTZ7S6qv0+x7akVCFuB hR9l1tbgw6B2t7wTqYFLvXI+KAAIhbgEWQDFcYOxbtABFlclmsFbdqgW4kmI9RoSdI zuYaQBPZBK8o2VXshwQtSE3bM0njGcW3mDpBRHQHK++MLDhg4oBdqwaVZ6MqkCYoov 3oCj/KsihjERHBpOHzrJ3ShbDZ37kQWZGW77+ZrjAOqj6IbLfSqY9c93w/m7agDClK PWUowLo8PSiqQ== From: Mike Rapoport To: linux-kernel@vger.kernel.org Cc: Andrew Morton , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Mark Rutland , Michael Ellerman , Mike Rapoport , Nadav Amit , "Naveen N. Rao" , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , Song Liu , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org Subject: [PATCH v2 08/12] riscv: extend execmem_params for kprobes allocations Date: Fri, 16 Jun 2023 11:50:34 +0300 Message-Id: <20230616085038.4121892-9-rppt@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230616085038.4121892-1-rppt@kernel.org> References: <20230616085038.4121892-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 23ADB140016 X-Rspam-User: X-Stat-Signature: ys84kxmciykzzc95zit538guhfiikrrr X-Rspamd-Server: rspam03 X-HE-Tag: 1686905537-82026 X-HE-Meta: U2FsdGVkX184DN1+ioZoVzVlrIKWgOxs/Q60U9ZUAz3EEuwS3biRu2iEIiUOVBeN/Ac8l1RcRkQ6Kyx1wDJ5+t5GlU0l6dJf6scv1uqh20NnJV+W7BM+StehFdZ2tzM2bKX+YCJf6x3R9aJtqDre7bRe5rYNVw8meUe9F8g/Wth6wL8Ao7FJNvCXkmYOQqCufhRZV7FgEhyQUpeC8+yx4z3eJf++hHZ5kEWIAJ2iXyqgu6fAN0kyMNCYVhl2TNZeiF4S4GYEfOqFT1he4cMPOHVGHRy3hSa2tejvqKBv6IQEhwePw4UOGM0FNkeImAN630amE1hdWLgYd80yYbai47qPKra0Iz1M0otYshhOp7HcBRGGyIsTLiC3ysvUBYcfV1R75iyQf6T3uMWnXDSFFRRfBjD8o1Unu+y6ROZsBmoslt1/vZmGyEqsa/mOMDqxl5a1N6Zxvj0Sez1VmUVU0JSQrdBhXc6VbP4wiJLfGGAJ7d0rbXaWF6nzam6sR37URhb24A3iw5AZxeIhvpubC16EOoi4aT4SNK6KDXERoZs3y8KaXkhJZ+UjpVSDL71ZcMmcMPFqotdD6HdggFez+7aQzycAYr3+YRdcTABYQ/qhjvDaDbEjKZDKjo7v1/Y+Ig/UDsgWVAVFqAXy7Fqu+VxHwwuhwxO1JpAo8YcyHSAuSL/7Y9mQm4M9LDK15GG1MEWd6qTgs5tW4v2ncAqtt6kTt3k48NUuEUOXFQTPo50nJktaMJbJoffn+KLPivb//gIlLboY/hHADG5qou1wWlhI2foIrk02YYSmIVlMXQlQ2SXntQuEq9Lw3skBakSsBe7F/Vh2NK2qkGYVKBUpXGHohxdAGWYP2PdNNsgaSaHvayYNUmLXeJCVuDH78hLXza703LtOBA2TCIEb8pB2IYKztSj3QY4v2FGIqEI/dlWCwYWdBK1mZFQeKIunRy53zwGiwLIw0R9DKO5w+Ko 6zi9pXnM /BoKAJZgtLjS9Y99ZXet9KPGcuMW8MOLX9wEnNtN5f8mJgo2o5ahKXb6oUF2+cM3SLqkdWvJjCcW9yypoPp+Whqw0bIE/tsK6Vl0xilFKuE5o9XrCRlZOqiJr0z3YkffV2rmcnQua9EEdDUTH2LntFeQGMvcOi8GLPbR37GqlRz/qnF2l9nrziT50V/JXUMMRgsSWBKjyL7lRY8iq1V4UDf1BMyH20qRnxsOCkjG4lEU3NsMNkPp+LJNEyw4oMh5BnxZcz38dP03s/vCmrSNTT/6ogMKODWNLgfwtuYrchwobTz6jp99wKkefPt/aG7vXFyarAyHtlwCIJBHS1fGzJDLhr8mZSRNe7MPXxscfoeQbV9j+R8ss2W8LtY7hdQHBhVFaMbI+bvukzVcP6wjJv7J5T3mzXvEZdDCkFGLTfYKGJueoF7Qbi3tMviBLr7HoHyIZGF2AudMkHqs= 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: From: "Mike Rapoport (IBM)" RISC-V overrides kprobes::alloc_insn_range() to use the entire vmalloc area rather than limit the allocations to the modules area. Slightly reorder execmem_params initialization to support both 32 and 64 bit variantsi and add definition of jit area to execmem_params to support generic kprobes::alloc_insn_page(). Signed-off-by: Mike Rapoport (IBM) --- arch/riscv/kernel/module.c | 16 +++++++++++++++- arch/riscv/kernel/probes/kprobes.c | 10 ---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/arch/riscv/kernel/module.c b/arch/riscv/kernel/module.c index ee5e04cd3f21..cca6ed4e9340 100644 --- a/arch/riscv/kernel/module.c +++ b/arch/riscv/kernel/module.c @@ -436,7 +436,7 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, return 0; } -#if defined(CONFIG_MMU) && defined(CONFIG_64BIT) +#ifdef CONFIG_MMU static struct execmem_params execmem_params = { .modules = { .text = { @@ -444,12 +444,26 @@ static struct execmem_params execmem_params = { .alignment = 1, }, }, + .jit = { + .text = { + .pgprot = PAGE_KERNEL_READ_EXEC, + .alignment = 1, + }, + }, }; struct execmem_params __init *execmem_arch_params(void) { +#ifdef CONFIG_64BIT execmem_params.modules.text.start = MODULES_VADDR; execmem_params.modules.text.end = MODULES_END; +#else + execmem_params.modules.text.start = VMALLOC_START; + execmem_params.modules.text.end = VMALLOC_END; +#endif + + execmem_params.jit.text.start = VMALLOC_START; + execmem_params.jit.text.end = VMALLOC_END; return &execmem_params; } diff --git a/arch/riscv/kernel/probes/kprobes.c b/arch/riscv/kernel/probes/kprobes.c index 2f08c14a933d..e64f2f3064eb 100644 --- a/arch/riscv/kernel/probes/kprobes.c +++ b/arch/riscv/kernel/probes/kprobes.c @@ -104,16 +104,6 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) return 0; } -#ifdef CONFIG_MMU -void *alloc_insn_page(void) -{ - return __vmalloc_node_range(PAGE_SIZE, 1, VMALLOC_START, VMALLOC_END, - GFP_KERNEL, PAGE_KERNEL_READ_EXEC, - VM_FLUSH_RESET_PERMS, NUMA_NO_NODE, - __builtin_return_address(0)); -} -#endif - /* install breakpoint in text */ void __kprobes arch_arm_kprobe(struct kprobe *p) { -- 2.35.1