diff --git a/src/sysboost_loader/binfmt_rto_604.c b/src/sysboost_loader/binfmt_rto_604.c index d30ae570871174d1cba72c0ca5780d82338702c3..728938af824b5cab4a8c56edd682c895a367eead 100644 --- a/src/sysboost_loader/binfmt_rto_604.c +++ b/src/sysboost_loader/binfmt_rto_604.c @@ -1407,7 +1407,7 @@ out_free_interp: unsigned long alignment; #ifdef CONFIG_ELF_SYSBOOST unsigned long size, off; - bool is_exec_seg = elf_ppnt->p_flags & PF_X; + bool is_exec_seg = !(elf_ppnt->p_flags & PF_W); #endif if (elf_ppnt->p_type != PT_LOAD) @@ -1567,9 +1567,11 @@ out_free_interp: size = elf_ppnt->p_filesz + ELF_HPAGEOFFSET(elf_ppnt->p_vaddr); off = elf_ppnt->p_offset - ELF_HPAGEOFFSET(elf_ppnt->p_vaddr); size = ELF_HPAGEALIGN(size); - if (debug) + if (debug) { + pr_info("loaded_seg: %pK\n", loaded_seg); pr_info("elf_map vaddr: 0x%lx, off: 0x%lx, size: 0x%lx\n", error, off, size); + } if (is_exec_seg) rto_populate(bprm->file, error, off, size, loaded_seg); } diff --git a/src/sysboost_loader/loader_device.c b/src/sysboost_loader/loader_device.c index 812158d2a68afb6faca2168f5dce426987e3e944..eb4327039ae733d262f07a53aa77c30fd1c7bc7f 100644 --- a/src/sysboost_loader/loader_device.c +++ b/src/sysboost_loader/loader_device.c @@ -51,7 +51,10 @@ static int load_seg(struct file *file, struct loaded_rto *loaded_rto, loaded_seg = loaded_seg_alloc(inode); if (!loaded_seg) return -ENOMEM; - + + if (debug) { + pr_info("loading segment %pK\n", loaded_seg); + } for (; pos < end; ) { page = alloc_pages(GFP_KERNEL | __GFP_ZERO | __GFP_COMP, HUGETLB_PAGE_ORDER); if (!page) { @@ -82,8 +85,8 @@ static int load_seg(struct file *file, struct loaded_rto *loaded_rto, // if (loaded_rto->segs.next == &loaded_rto->segs || // loaded_seg->hpages.next == &loaded_seg->hpages) { list_add_tail(&page->lru, &loaded_seg->hpages); - pr_info("load_seg: load 1 hpage: 0x%pK\n", - page); + if (debug) + pr_info("load_seg: load 1 hpage: 0x%pK\n", page); // } } @@ -172,9 +175,11 @@ static int preload_rto(struct file *file) rto_file = try_get_rto_file(file); if (IS_ERR(rto_file)) { - pr_info("%s: try_get_rto_file fail\n", __func__); + pr_info("%s: try_get_rto_file %s fail\n", __func__, FILE_TO_NAME(file)); return -ENOENT; } + if (debug) + pr_info("loading file %s\n", FILE_TO_NAME(rto_file)) loaded_rto = loaded_rto_alloc(inode); if (!loaded_rto) {