linux-user: more debug for init_guest_space

Searching for memory space can cause problems so lets extend the
CPU_LOG_PAGE output so you can watch init_guest_space fail to
allocate memory. A more involved fix is actually required to make this
function play nicely with the large guard pages the sanitiser likes to
use.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200403191150.863-5-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2020-04-03 20:11:42 +01:00
parent af7fc47f2c
commit b859040dc4

View File

@ -2172,6 +2172,8 @@ unsigned long init_guest_space(unsigned long host_start,
/* Check to see if the address is valid. */
if (host_start && real_start != current_start) {
qemu_log_mask(CPU_LOG_PAGE, "invalid %lx && %lx != %lx\n",
host_start, real_start, current_start);
goto try_again;
}
@ -2240,7 +2242,11 @@ unsigned long init_guest_space(unsigned long host_start,
* probably a bad strategy if not, which means we got here
* because of trouble with ARM commpage setup.
*/
munmap((void *)real_start, real_size);
if (munmap((void *)real_start, real_size) != 0) {
error_report("%s: failed to unmap %lx:%lx (%s)", __func__,
real_start, real_size, strerror(errno));
abort();
}
current_start += align;
if (host_start == current_start) {
/* Theoretically possible if host doesn't have any suitably