aboutsummaryrefslogtreecommitdiff
path: root/trace
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@parabola.nu>2017-12-28 13:08:13 -0500
committerLaurent Vivier <laurent@vivier.eu>2018-03-20 18:26:40 +0100
commit2a53535af471f4bee9d6cb5b363746b8d5ed21dd (patch)
tree3abf440aeaf27ae03b4bde4cf3d0ac99dfabfe41 /trace
parent036793aebfc1dd0ce124fa278d7668d89b5da936 (diff)
linux-user: init_guest_space: Try to make ARM space+commpage continuous
At a fixed distance after the usable memory that init_guest_space maps, for 32-bit ARM targets we also need to map a commpage. The normal init_guest_space logic doesn't keep this in mind when searching for an address range. If !host_start, then try to find a big continuous segment where we can put both the usable memory and the commpage; we then munmap that segment and set current_start to that address; and let the normal code mmap the usable memory and the commpage separately. That is: if we don't have hint of where to start looking for memory, come up with one that is better than NULL. Depending on host_size and guest_start, there may or may not be a gap between the usable memory and the commpage, so this is slightly more restrictive than it needs to be; but it's only a hint, so that's OK. We only do that for !host start, because if host_start, then either: - we got an address passed in with -B, in which case we don't want to interfere with what the user said; - or host_start is based off of the ELF image's loaddr. The check "if (host_start && real_start != current_start)" suggests that we really want lowest available address that is >= loaddr. I don't know why that is, but I'm trusting that Paul Brook knew what he was doing when he wrote the original version of that check in c581deda322080e8beb88b2e468d4af54454e4b3 way back in 2010. Signed-off-by: Luke Shumaker <lukeshu@parabola.nu> Message-Id: <20171228180814.9749-11-lukeshu@lukeshu.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'trace')
0 files changed, 0 insertions, 0 deletions