[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 8/9] linux-user: Default to 64k guest base
From: |
Riku Voipio |
Subject: |
Re: [Qemu-devel] [PATCH 8/9] linux-user: Default to 64k guest base |
Date: |
Mon, 22 Jul 2013 22:54:23 +0300 |
On 6 July 2013 15:17, Alexander Graf <address@hidden> wrote:
> Most kernels these days have protection code in place to forbid user space
> to access low memory. The barrier varies between architectures though.
>
> For this purpose we have the guest base option that allows us to offset
> guest visible memory from host memory, so that the guest process thinks
> it can access lower memory than it really can access.
>
> Set the default for the guest base to 64k which should be good enough on
> any host system.
> This fixes running i386 wine on ARM for me.
It also makes qemu-x86_64 segfault busybox running on x86_64 host:
x86_64-linux-user/qemu-x86_64 qemu-smoke/amd64/busybox ls -l
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
./smoke-test: line 28: 16061 Segmentation fault (core dumped)
$qemudir/x86_64-linux-user/qemu-x86_64 $testdir/amd64/busybox $@
Riku
> Signed-off-by: Alexander Graf <address@hidden>
> ---
> linux-user/main.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/linux-user/main.c b/linux-user/main.c
> index 7f15d3d..a246cff 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -45,8 +45,8 @@ envlist_t *envlist;
> const char *cpu_model;
> unsigned long mmap_min_addr;
> #if defined(CONFIG_USE_GUEST_BASE)
> -unsigned long guest_base;
> -int have_guest_base;
> +unsigned long guest_base = 64 * 1024;
> +int have_guest_base = 1;
> #if (TARGET_LONG_BITS == 32) && (HOST_LONG_BITS == 64)
> /*
> * When running 32-on-64 we should make sure we can fit all of the possible
> @@ -3294,7 +3294,7 @@ static void handle_arg_cpu(const char *arg)
> static void handle_arg_guest_base(const char *arg)
> {
> guest_base = strtol(arg, NULL, 0);
> - have_guest_base = 1;
> + have_guest_base = guest_base ? 1 : 0;
> }
>
> static void handle_arg_reserved_va(const char *arg)
> --
> 1.6.0.2
>
- [Qemu-devel] [PATCH 0/9] Wine enablement patch set v2, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 7/9] linux-user: Enable NPTL for i386, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 6/9] linux-user: Add i386 TLS setter, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 3/9] linux-user: Reset copied CPUs in cpu_copy() always, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 2/9] user-exec.c: Set is_write correctly in the ARM cpu_signal_handler(), Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 8/9] linux-user: Default to 64k guest base, Alexander Graf, 2013/07/06
- Re: [Qemu-devel] [PATCH 8/9] linux-user: Default to 64k guest base,
Riku Voipio <=
- [Qemu-devel] [PATCH 1/9] linux-user: fix segmentation fault passing with h2g(x) != x, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 5/9] linux-user: Fix epoll on ARM hosts, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 9/9] linux-user: Unlock mmap_lock when resuming guest from page_unprotect, Alexander Graf, 2013/07/06
- [Qemu-devel] [PATCH 4/9] linux-user: Clean up sendrecvmsg message parsing, Alexander Graf, 2013/07/06