diff --git a/src/binfmt_rto/binfmt_rto.c b/src/binfmt_rto/binfmt_rto.c index e4e07142a32243d9ca8b05cd1d4d56a8239522db..142b3d470b61858dc8e6b5cb33734c1f9f141079 100644 --- a/src/binfmt_rto/binfmt_rto.c +++ b/src/binfmt_rto/binfmt_rto.c @@ -1623,7 +1623,8 @@ out_free_interp: unsigned long pop_len = ELF_PAGEALIGN(elf_bss) - rto_layout_start_addr; if (debug) printk("sysboost: start 0x%lx end 0x%lx len 0x%lx\n", rto_layout_start_addr, ELF_PAGEALIGN(elf_bss), pop_len); - rto_sym.do_mm_populate(current->mm, rto_layout_start_addr, pop_len, 1); + if (populate) + rto_sym.do_mm_populate(current->mm, rto_layout_start_addr, pop_len, 1); } #endif diff --git a/src/binfmt_rto/main.c b/src/binfmt_rto/main.c index cd61ef5e0d80a630415d8711008c3f520d2a35ca..47406b96a378d357a805ba84c4eaf6d62e33d0df 100644 --- a/src/binfmt_rto/main.c +++ b/src/binfmt_rto/main.c @@ -15,6 +15,10 @@ int debug = 0; module_param(debug, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(debug, "debug mode"); +bool populate = false; +module_param(populate, bool, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(populate, "populate memory"); + kallsyms_lookup_name_kprobe_t klookupf; static int init_kallsyms_lookup_name(void) diff --git a/src/binfmt_rto/main.h b/src/binfmt_rto/main.h index 04dc032af6f0d7f56b46aae0504d75d88226799b..01b57cf32f10f1177a2ecf724f8b63d2236df533 100644 --- a/src/binfmt_rto/main.h +++ b/src/binfmt_rto/main.h @@ -8,6 +8,7 @@ extern bool use_rto; extern int debug; +extern bool populate; typedef unsigned long (*kallsyms_lookup_name_kprobe_t)(const char *name); extern kallsyms_lookup_name_kprobe_t klookupf;