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 DBC14C4345F for ; Mon, 22 Apr 2024 09:46:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7127C6B008A; Mon, 22 Apr 2024 05:46:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 69B156B009F; Mon, 22 Apr 2024 05:46:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4C71B6B00A7; Mon, 22 Apr 2024 05:46:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2C6566B008A for ; Mon, 22 Apr 2024 05:46:46 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D5814160AA6 for ; Mon, 22 Apr 2024 09:46:45 +0000 (UTC) X-FDA: 82036688370.21.956FD49 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf09.hostedemail.com (Postfix) with ESMTP id 2BB1A140009 for ; Mon, 22 Apr 2024 09:46:43 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=j0YfEesx; 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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713779204; a=rsa-sha256; cv=none; b=N6Hc7D6C+xGAGoLmoXqUMhPI39I9c/gTZTrYcbq4VQQkOEXgDfeuam1qeP9vSEtwlNrS4M pYaq3I9E5v92P9JJsUoibUNB0jt66GGota4MilY69bXkbweZfVy58Ihq4bg859MpD2pLSM UjipMa1ur7S+j48r1+MXlG9OrPICJJI= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=j0YfEesx; 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=1713779204; 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=ov+Zy6p+o+MKzsKOdrDu2h5RMDTUryzC1DCfp/0ZOLE=; b=KmO0pY5GYZcXtO7XzpEw5eXy1TDuLJfeuW3MCwJWZTduXTugO13O/YwDl5/zAzU2kZb7yb qIDkJa0yNXVTQCcgoTHRWekfjWHcRVhp5kjC9DLadmDjW0e+O/9H4SExgsaaEcVGeaWys7 VyEeO0tbuP6siFvTdeDWNVv305Gw7O0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 73E7D60C2D; Mon, 22 Apr 2024 09:46:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D774EC32786; Mon, 22 Apr 2024 09:46:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713779203; bh=rAIWAHsYUw427kTFrCCQC+4mkWqWWUZB9Zh1fdelySY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j0YfEesx7CEXngVPF1+WYwGD7OsdmC5ykPw0tTU/V+PSt9QW4PCXWfNMsbfMzuht8 sCE78drB0dTFYsPhPrCihSvrJGU6iKCo42wwATeQNlhOPuCVgKLo0xeubuOka49KeU XJE8gR0k3OSe0E3Y/yr6RWydOG27mj4nE3i7HcbFg1FEpaTiBqsNAKPVilBuwPADaO qO2drutIyOBCHiJwPcVpToYl/7bI3ggo3bmA/cAMEs8OqSwr3WjHUGp55/NXCT9Mlp 7qW1VzeaIP6S3hYfp9COfBOr9aRu1GeeBZU4Lrgjxup9Ae03LJ/TnO2BwqhC1wRU3f os8N1LVEaUyhg== From: Mike Rapoport To: linux-kernel@vger.kernel.org Cc: Alexandre Ghiti , Andrew Morton , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Donald Dutile , Eric Chanudet , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Michael Ellerman , Mike Rapoport , Nadav Amit , Palmer Dabbelt , Peter Zijlstra , Rick Edgecombe , Russell King , Sam Ravnborg , Song Liu , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf@vger.kernel.org, linux-arch@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 v5 09/15] riscv: extend execmem_params for generated code allocations Date: Mon, 22 Apr 2024 12:44:30 +0300 Message-ID: <20240422094436.3625171-10-rppt@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240422094436.3625171-1-rppt@kernel.org> References: <20240422094436.3625171-1-rppt@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 2BB1A140009 X-Stat-Signature: 73rkzmuomcf4ab131eufthq3ymdu68p6 X-Rspam-User: X-HE-Tag: 1713779203-936381 X-HE-Meta: U2FsdGVkX19NaDlvLmOxER9xRTbGGHtKNTO06eKkjnXioQTAQyBlnLWaPyGG/ZRHujaIOY+5BFO5FiLDu7B65eUkbDB7O4wAc+O7mIkrg6A+AzlwxbWIs4l7UbHlUOSCXbOYXOfhcZjhKgCd8xTjfWsPiwCVDfsiraLg2NEM9gIKc59nlagpanNviCNd49sRG0ffVRtfhXmLG9Zl4iGgkC/VaD9kXBsqsfdOcO/1E3WyDAbw5pntvd6qLI+CqArMG7d83bJYLgJPZCgkKGP6lxSJvCUwgsSOaqXR7xCP5EfFaLiv9bbR3tp96P4P0/SzGlQuab7sDRQQ8P6kgHi3jdlUPqg3/DEK7nYXvMTJNSIE+UIBoV6GUe1iHvfn8YKWBQuTdOfEsH8xP1jUox+phis2JL9X+c1oX9zqs1C0Hu+YnXIYapoPJLBAPAaAyZNa52x5gW/zJNlt8SonwC3Kj7LQnLXcraqbEdbbK/sSltfjBHWXdEvD3RDXqaV5PULDGoW01mnMIW6rYmVo7c/v/nk6aDvuEe81gSwWt2eehhKh4uZF3RDkEbU+8+cVDWvrLQXs3WSG/tCF2YMI339YFFeKznXO5ay/0Oc7n/K/glWyYdg2th2w9c0JepSl13qQ5ClCJTnJOBTTEKAnN2ntLyLMTwu+myKjej+ib93DH486J9CJhuyX5ZZMseymF4U5WTIDS8gwPeMNODb0dgkAV0nUv2beXu0bYayWFoOf+8pdJcEH72v67GfKT+uVDsQ+AJ2kTMIw1KeK3AqzgRV3MMp9nFaZ8T/V0sJWwq2cXgkAV3psxL8PoC9M1DSvkBNMI8BHBLwiWaejbS6a4NdvzM/KBj0LLhy9Q8kIJApRp4cy0TchjKbeTnW5Ju9unwRWPx2sxKfmg2GrOzehe3iLTwz/Xl9j7htVvLnoyFDF93Cz0t+ZVEkAgC2zm7Gk9GHyyeeXgmtIwUCYnBb7YfF 2VDyu6Ah DaMLvGqUgHhQiFkzRyF+3TDYRTmilQDudcCrFS+Op7mI3trpOZyvZyQxPnir2UcTIICNv+GaZPK5N8oWlUQLyskSvgvqux4CnAPwKheCv6KYToilGtmuC/+oQpEiSQ/4wAaNZHKwZYTGD43PkwCJ6xo2GVB78sWKLhO2IQB//2AjM4/OTBh/MNL3b5J00bghffAj4nYLOQaXPUj6W4zCJH9dB92uXC2jvrb4ZjWwLFs6fqrDzxwS+D/g7QR0XAzvESdB2cJfihHteWTIQfqYkesEvI8F6O/CEjhut+0CAUSZoiUrvmy27sYHFhsH8NbMAjR63RN5svV29QzzMIFZcSThgZhgTZddiCAFXhGZgm5TWOr7UyxU9fDU5VIUd8M2Cq1Kovy0HecQ8SjSxUlogJ/TZUtsFyiVZEfX3syn1mhxW1qw= 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 (IBM)" The memory allocations for kprobes and BPF on RISC-V are not placed in the modules area and these custom allocations are implemented with overrides of alloc_insn_page() and bpf_jit_alloc_exec(). Slightly reorder execmem_params initialization to support both 32 and 64 bit variants, define EXECMEM_KPROBES and EXECMEM_BPF ranges in riscv::execmem_params and drop overrides of alloc_insn_page() and bpf_jit_alloc_exec(). Signed-off-by: Mike Rapoport (IBM) Reviewed-by: Alexandre Ghiti --- arch/riscv/kernel/module.c | 28 +++++++++++++++++++++++++--- arch/riscv/kernel/probes/kprobes.c | 10 ---------- arch/riscv/net/bpf_jit_core.c | 13 ------------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/arch/riscv/kernel/module.c b/arch/riscv/kernel/module.c index 182904127ba0..2ecbacbc9993 100644 --- a/arch/riscv/kernel/module.c +++ b/arch/riscv/kernel/module.c @@ -906,19 +906,41 @@ 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_info execmem_info __ro_after_init; struct execmem_info __init *execmem_arch_setup(void) { + unsigned long start, end; + + if (IS_ENABLED(CONFIG_64BIT)) { + start = MODULES_VADDR; + end = MODULES_END; + } else { + start = VMALLOC_START; + end = VMALLOC_END; + } + execmem_info = (struct execmem_info){ .ranges = { [EXECMEM_DEFAULT] = { - .start = MODULES_VADDR, - .end = MODULES_END, + .start = start, + .end = end, .pgprot = PAGE_KERNEL, .alignment = 1, }, + [EXECMEM_KPROBES] = { + .start = VMALLOC_START, + .end = VMALLOC_END, + .pgprot = PAGE_KERNEL_READ_EXEC, + .alignment = 1, + }, + [EXECMEM_BPF] = { + .start = BPF_JIT_REGION_START, + .end = BPF_JIT_REGION_END, + .pgprot = PAGE_KERNEL, + .alignment = PAGE_SIZE, + }, }, }; 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) { diff --git a/arch/riscv/net/bpf_jit_core.c b/arch/riscv/net/bpf_jit_core.c index 6b3acac30c06..e238fdbd5dbc 100644 --- a/arch/riscv/net/bpf_jit_core.c +++ b/arch/riscv/net/bpf_jit_core.c @@ -219,19 +219,6 @@ u64 bpf_jit_alloc_exec_limit(void) return BPF_JIT_REGION_SIZE; } -void *bpf_jit_alloc_exec(unsigned long size) -{ - return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START, - BPF_JIT_REGION_END, GFP_KERNEL, - PAGE_KERNEL, 0, NUMA_NO_NODE, - __builtin_return_address(0)); -} - -void bpf_jit_free_exec(void *addr) -{ - return vfree(addr); -} - void *bpf_arch_text_copy(void *dst, void *src, size_t len) { int ret; -- 2.43.0