[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for sh
From: |
Meador Inge |
Subject: |
Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed |
Date: |
Wed, 27 Jun 2012 10:51:55 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120424 Thunderbird/12.0 |
On 06/12/2012 09:08 AM, Richard Henderson wrote:
> I think this is one of those cases where the -B or -R options
> (or QEMU_GUEST_BASE and QEMU_RESERVED_VA env variables) are the best
> way forward for whatever cpu you're emulating. That or a change to
> the target's default ld script, not to link real executables quite so
> low in the address space.
Per Richard's recommendation I experimented with -R for my use cases. It seems
to mostly work, but for ARM GNU/Linux there is an issue that makes it awkward
to work with.
In particular, this commit [1] added validation for the guest base as a way to
ensure that the kernel-provided user mode helper functions on ARM can be mapped.
The validation function is invoked by 'probe_guest_base', but also in
main.c:3456 whenever -R or -B is used:
if (reserved_va || have_guest_base) {
if (!guest_validate_base(guest_base)) {
fprintf(stderr, "Guest base/Reserved VA rejected by guest code\n");
exit(1);
}
}
Thus we might be able to allocate the reserved VA region, but it might fail the
validation and exit. I had this actually happen on many test cases when testing
'-R 128M' with portions of the GCC testsuite.
To solve this issue I experimented with performing a similar probing in 'main'
as in 'probe_guest_base' so that we can find a reserved VA region that also
passes validation. If a region isn't found that can be validated, then QEMU
gives up. Does this approach seem reasonable?
[1]
http://git.qemu.org/?p=qemu.git;a=commit;h=97cc75606aef406e90a243cdb25347039003e7f0
--
Meador Inge
CodeSourcery / Mentor Embedded
http://www.mentor.com/embedded-software
- [Qemu-devel] [RFC PATCH 0/1] linux-user: Issue running applications through ld.so, Meador Inge, 2012/06/08
- [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Meador Inge, 2012/06/08
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Richard Henderson, 2012/06/12
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Meador Inge, 2012/06/12
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed,
Meador Inge <=
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Richard Henderson, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Peter Maydell, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Andreas Färber, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Richard Henderson, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Andreas Färber, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Paul Brook, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Alexander Graf, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Paul Brook, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Meador Inge, 2012/06/27
- Re: [Qemu-devel] [RFC PATCH 1/1] linux-user: Probe the guest base for shared objects when needed, Paul Brook, 2012/06/27