Messages in this thread |  | | Date | Tue, 14 Jul 2020 20:45:03 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH RFC] kprobes: Remove MODULES dependency |
| |
On Mon, 13 Jul 2020 08:49:55 +0300 Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> wrote:
> On Fri, Jul 10, 2020 at 01:32:38PM +0200, Peter Zijlstra wrote: > > On Fri, Jul 10, 2020 at 07:32:57PM +0900, Masami Hiramatsu wrote: > > > > - page = module_alloc(PAGE_SIZE); > > > > + page = vmalloc(PAGE_SIZE); > > > > > > No, you can not use vmalloc here. The reason why we use module_alloc() > > > is to allocate the executable memory for trampoline code. > > > So, you need to use vmalloc_exec() instead. > > > > vmalloc_exec() would be broken too, also hch recently got rid of that > > thing. > > > > module_alloc() really is the only sane choice here. > > > > We should make module_alloc() unconditionally available, and maybe even > > rename it to text_alloc(). > > Thanks for the remarks. > > The current module_alloc looks like this: > > void * __weak module_alloc(unsigned long size) > { > return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, > GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS, > NUMA_NO_NODE, __builtin_return_address(0)); > } > > What if I create inline functions for text_alloc() and text_memfree() and > convert this function as: > > void * __weak module_alloc(unsigned long size) > { > return text_alloc(size); > }
Yeah, that'll be good.
Thank you,
-- Masami Hiramatsu <mhiramat@kernel.org>
|  |