linux-user/elfload: add extra logging for hole finding
The various approaches to finding memory holes are quite complicated to follow especially at a distance. Improve the logging so we can see exactly what method found the space for the guest memory. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Warner Losh <imp@bsdimp.com> Message-Id: <20220105135009.1584676-26-alex.bennee@linaro.org>
This commit is contained in:
parent
11d3672788
commit
e7588237ce
@ -2267,6 +2267,9 @@ static void pgb_have_guest_base(const char *image_name, abi_ulong guest_loaddr,
|
||||
if (test != addr) {
|
||||
pgb_fail_in_use(image_name);
|
||||
}
|
||||
qemu_log_mask(CPU_LOG_PAGE,
|
||||
"%s: base @ %p for " TARGET_ABI_FMT_ld " bytes\n",
|
||||
__func__, addr, guest_hiaddr - guest_loaddr);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2309,6 +2312,9 @@ static uintptr_t pgd_find_hole_fallback(uintptr_t guest_size, uintptr_t brk,
|
||||
if (mmap_start != MAP_FAILED) {
|
||||
munmap(mmap_start, guest_size);
|
||||
if (mmap_start == (void *) align_start) {
|
||||
qemu_log_mask(CPU_LOG_PAGE,
|
||||
"%s: base @ %p for %" PRIdPTR" bytes\n",
|
||||
__func__, mmap_start + offset, guest_size);
|
||||
return (uintptr_t) mmap_start + offset;
|
||||
}
|
||||
}
|
||||
@ -2388,6 +2394,12 @@ static uintptr_t pgb_find_hole(uintptr_t guest_loaddr, uintptr_t guest_size,
|
||||
}
|
||||
free_self_maps(maps);
|
||||
|
||||
if (ret != -1) {
|
||||
qemu_log_mask(CPU_LOG_PAGE, "%s: base @ %" PRIxPTR
|
||||
" for %" PRIuPTR " bytes\n",
|
||||
__func__, ret, guest_size);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2439,6 +2451,9 @@ static void pgb_static(const char *image_name, abi_ulong orig_loaddr,
|
||||
}
|
||||
|
||||
guest_base = addr;
|
||||
|
||||
qemu_log_mask(CPU_LOG_PAGE, "%s: base @ %"PRIxPTR" for %" PRIuPTR" bytes\n",
|
||||
__func__, addr, hiaddr - loaddr);
|
||||
}
|
||||
|
||||
static void pgb_dynamic(const char *image_name, long align)
|
||||
@ -2495,6 +2510,9 @@ static void pgb_reserved_va(const char *image_name, abi_ulong guest_loaddr,
|
||||
"using -R option)", reserved_va, test, strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
qemu_log_mask(CPU_LOG_PAGE, "%s: base @ %p for %lu bytes\n",
|
||||
__func__, addr, reserved_va);
|
||||
}
|
||||
|
||||
void probe_guest_base(const char *image_name, abi_ulong guest_loaddr,
|
||||
|
Loading…
Reference in New Issue
Block a user