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 2DF73E7D24D for ; Tue, 26 Sep 2023 08:05:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAC2D8D0074; Tue, 26 Sep 2023 04:05:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B5C5C8D0005; Tue, 26 Sep 2023 04:05:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A23A48D0074; Tue, 26 Sep 2023 04:05:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 8292B8D0005 for ; Tue, 26 Sep 2023 04:05:32 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 46A17C11AA for ; Tue, 26 Sep 2023 08:05:32 +0000 (UTC) X-FDA: 81278014104.21.F823797 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf01.hostedemail.com (Postfix) with ESMTP id EEDCB40015 for ; Tue, 26 Sep 2023 08:05:29 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RLx2TLWK; spf=pass (imf01.hostedemail.com: domain of rppt@kernel.org designates 145.40.73.55 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=1695715530; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=yhlj6GB/jPpZLBIF7GTkheYVDphmios4NWkTZl2cmUk=; b=0njMn9biWcstxcGrq5jydh6O8Gc4fUlVi108v+UxD8USIS5MyHTjywzImQbKPfkC9rARVk 9sVVuxbmO+Up2umDzLgBmPhEOJ18cxenlO8VHlwqNCPBzqaE7BiIoFDtOqE0tPTHJOLUHv mIVtGZb236bqpYsJf6MdteyN02m39eI= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RLx2TLWK; spf=pass (imf01.hostedemail.com: domain of rppt@kernel.org designates 145.40.73.55 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=1695715530; a=rsa-sha256; cv=none; b=FjI0wkITZYksaAZePCs6qyjvI7dn9/9yKqOeOEMK9i/ZDIsWxrK9cP6nAf2Pb00+TQGx77 8QQ7ca2jZurh5G9hPYxBuIgmzwv9xPpkVGs+KLD956XLefU42tOSItRvU4OQlA6W5fjm/o 9Mmo9xo1Et5LT+pV8sgFZFbqxfIXYNQ= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 2B0B9CE12BF; Tue, 26 Sep 2023 08:05:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DEB07C433C7; Tue, 26 Sep 2023 08:05:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1695715524; bh=+Amk36a0CBOiKu5+FtjGQvFX395/lzfG991XVrUkCKk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RLx2TLWKtN7VAMAOy6Z+yt+5L2H3WvCxgk6fo3xEAFTVDZv0mPqQm9oryMdet+1qZ obrB5TY2nE/qbUSfaI1uId3y2yRK2qnxEYYQpqf8IMXRqLpaWcyp6r1h8W5YGqDDxg /Ipk9rb4CjRrT7bowSHMduOUAEuaFMTD7nXxu83iUI+O1xmmOj2PJsMoiGARKNDMsM m8lXDTJPRNGVXjXTr34wm+BzlG4p+UzrUM7cd5TVxTprWIBaR+mK3IXevwTFE0yWC2 SIHL7mRKLFjL2iR5rLVY4OdrYFjdV9kMecllhx3OCPX+UXN+tAGab3AHw/soEZdxZb tvxNd43ZGN+BA== Date: Tue, 26 Sep 2023 11:04:22 +0300 From: Mike Rapoport To: Song Liu Cc: linux-kernel@vger.kernel.org, Andrew Morton , =?iso-8859-1?Q?Bj=F6rn_T=F6pel?= , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Mark Rutland , Michael Ellerman , Nadav Amit , "Naveen N. Rao" , Palmer Dabbelt , Puranjay Mohan , Rick Edgecombe , Russell King , 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: Re: [PATCH v3 02/13] mm: introduce execmem_text_alloc() and execmem_free() Message-ID: <20230926080422.GP3303@kernel.org> References: <20230918072955.2507221-1-rppt@kernel.org> <20230918072955.2507221-3-rppt@kernel.org> <20230923153808.GI3303@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: EEDCB40015 X-Rspam-User: X-Stat-Signature: meqtkudfj6zsij7xcb47u1yofqx8sdn4 X-Rspamd-Server: rspam01 X-HE-Tag: 1695715529-337588 X-HE-Meta: U2FsdGVkX1/OAIaxVTq/gLWzR02B/htuyX3cB+qqN31Lzti1kGILDph3mCUbxjF52N4AmXgJzTYjL+rTiUM+nBg/K/F5W4/InvF7NhNQ7nVEEYx2SxM5Fp8WdGTEa7qo7MOaDIU1its/wD+fQ119PVvLpDE0koz2F1hA8a+c4Pd1brCebIelrEC4NrqJEwsbWFR94hH+HPj4bxz9Vcd6ExgsREtoQ9xASHbn80eBs1+n78/1od5EssbIUClIeHZ9hnmRGh9RASY2jWLWFItZMieReW4iUTc2N2+nVk24a0kqg6m+pU5C/yiPOZNcCdmXTUS0e9oQA/Yn1i9m2xbIycqGg4I/kYEBZrADNhA6c2H3knEriOAOf57LneN1DdZQodHkU/cznkEMKZiSuHvwno+B0DmrIcS3YE8i5eUqsNXGczX92o74HtcgkBUhLd2bDE7wtWXPHIX9Qa6dogRjQm+rA+M1epoW1LXP2LtZudDADW568qYA/Lk0FHdqDLNmZ7ROm0uTnEUsJdNlt91U2Rq/P6Yj7HIacUWs+ztxj46bAFFG6Q32d/L9uSn7cSkdx23g1GblGnqXZzkAzbvfRYCLHhWf9DWytK9GQHIJt5DiclKOSXNvxLQa3/gVmaHExUhVXibKdsxjkVF1ngdh4ci6eSRnocNJqzdXo7rnPWPIrWUqxBoj56p4W++RbCvYQizg4Z2aVGoSfQv+uLlpIxmY8FCKT9UlV2lz71FwclsZFdK6Bdg72mCk5w051WyDlnZyrtY6n/T7gtfaJZToTXO9r0vBxP7aaAGW31tB3Gb97PH6XEMlP6s6AqADILFY7M8C2Ni2eaE2CFOhCBkxZNik24dEFYi0Iq/VWdvNcEQo03DIXtACRCbOK7AGytdKBXdM+nAxkDsxjCQkAJ+s+88DNiM5rxuJ+0wxJ2p5ILMAbRlQ7xOAdjcToq8J/W6RpTODh6ozPJAeXDW90Xo Y1qImNXd SJqJKNm5mW2h+Ir6hf27tUTKAfDWC976XNIhWv7AV3rYtf7zPo123E3OH2QsWsIM07i9yyWOir6Ohkl36ZUTAzwNtloO/6JX/897eLtDj+1mM7eHiRA+7rxW4T886/dkCuEWDSTmfJcKCC4YteMTi697QsZ6bb8saa/lsapgg7sGJjji6mbT8iBr6QbkQJfqLyVvMjNjcKpWPjHjrAjQ9shMmLQgHIdb2npd1iDHxhMZr00Zyv65HM5OrvP9JQUb/4/v0GflAaeK/OQWCQqr3TZZX5oQRLrHhZavbY4cbFujV3ViQIHXEIiStmXIG9JM/rVQ/JcaqcuNRtLpArSRWOkBbGSfN4m7bMeabjl62FVzuK7wliqzM3QXufRjo/OpkjuRhmWT+3jiOwgOjn7qE8H2wKeZldYe6l2pt 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: On Sat, Sep 23, 2023 at 03:36:01PM -0700, Song Liu wrote: > On Sat, Sep 23, 2023 at 8:39 AM Mike Rapoport wrote: > > > > On Thu, Sep 21, 2023 at 03:34:18PM -0700, Song Liu wrote: > > > On Mon, Sep 18, 2023 at 12:30 AM Mike Rapoport wrote: > > > > > > > > > > [...] > > > > > > > diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c > > > > index 42215f9404af..db5561d0c233 100644 > > > > --- a/arch/s390/kernel/module.c > > > > +++ b/arch/s390/kernel/module.c > > > > @@ -21,6 +21,7 @@ > > > > #include > > > > #include > > > > #include > > > > +#include > > > > #include > > > > #include > > > > #include > > > > @@ -76,7 +77,7 @@ void *module_alloc(unsigned long size) > > > > #ifdef CONFIG_FUNCTION_TRACER > > > > void module_arch_cleanup(struct module *mod) > > > > { > > > > - module_memfree(mod->arch.trampolines_start); > > > > + execmem_free(mod->arch.trampolines_start); > > > > } > > > > #endif > > > > > > > > @@ -510,7 +511,7 @@ static int module_alloc_ftrace_hotpatch_trampolines(struct module *me, > > > > > > > > size = FTRACE_HOTPATCH_TRAMPOLINES_SIZE(s->sh_size); > > > > numpages = DIV_ROUND_UP(size, PAGE_SIZE); > > > > - start = module_alloc(numpages * PAGE_SIZE); > > > > + start = execmem_text_alloc(EXECMEM_FTRACE, numpages * PAGE_SIZE); > > > > > > This should be EXECMEM_MODULE_TEXT? > > > > This is an ftrace trampoline, so I think it should be FTRACE type of > > allocation. > > Yeah, I was aware of the ftrace trampoline. My point was, ftrace trampoline > doesn't seem to have any special requirements. Therefore, it is probably not > necessary to have a separate type just for it. Since ftrace trampolines are currently used only on s390 and x86 which enforce the same range for all executable allocations there are no special requirements indeed. But I think that explicitly marking these allocations as FTRACE makes it clearer what are they used for and I don't see downsides to having a type for FTRACE. > AFAICT, kprobe, ftrace, and BPF (JIT and trampoline) can share the same > execmem_type. We may need some work for some archs, but nothing is > fundamentally different among these. Using the same type for all generated code implies that all types of the generated code must live in the same range and I don't think we want to impose this limitation on architectures. For example, RISC-V deliberately added a range for BPF code to allow relative addressing, see commit 7f3631e88ee6 ("riscv, bpf: Provide RISC-V specific JIT image alloc/free"). > Thanks, > Song -- Sincerely yours, Mike.