> On Nov 27, 2018, at 4:07 PM, Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx> wrote: > > Change the module allocations to flush before freeing the pages. > > Signed-off-by: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx> > --- > arch/x86/kernel/module.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c > index b052e883dd8c..1694daf256b3 100644 > --- a/arch/x86/kernel/module.c > +++ b/arch/x86/kernel/module.c > @@ -87,8 +87,8 @@ void *module_alloc(unsigned long size) > p = __vmalloc_node_range(size, MODULE_ALIGN, > MODULES_VADDR + get_module_load_offset(), > MODULES_END, GFP_KERNEL, > - PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE, > - __builtin_return_address(0)); > + PAGE_KERNEL_EXEC, VM_IMMEDIATE_UNMAP, > + NUMA_NO_NODE, __builtin_return_address(0)); Hmm. How awful is the resulting performance for heavy eBPF users? I’m wondering if the JIT will need some kind of cache to reuse allocations. > if (p && (kasan_module_alloc(p, size) < 0)) { > vfree(p); > return NULL; > -- > 2.17.1 >