qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-stable] [PATCH for-2.1] linux-user: hide reserved


From: Michael Roth
Subject: Re: [Qemu-devel] [Qemu-stable] [PATCH for-2.1] linux-user: hide reserved mmap in /proc/self/mmap
Date: Wed, 06 Aug 2014 12:25:30 -0500
User-agent: alot/0.3.4

Quoting Mikhail Ilin (2014-07-18 02:39:46)
> Hi,
> 
> Running 32-bits binaries with address sanitizer (ASAN) instrumentations
> fails under 64-bits qemu. During initialization ASAN relies on the output
> from /proc/self/mmap then tries to find a big chunk for shadow memory but
> it is not happened.
> 
> Reserved memory for guest address space is used privately by qemu to
> satisfy user anonymous mmap calls but in the same time it is not hidden
> from an application and is reported when a user reads /proc/self/mmap.
> Qemu is not fully transparent for a guest.
> 
> The patch covers the case and cleans up the reserved memory map from
> the output.
> 
> 
>  From 167c42e6a9521c05ddd7c6dfbb108d2ae65de098 Mon Sep 17 00:00:00 2001
> From: Mikhail Ilyin <address@hidden>
> Date: Fri, 18 Jul 2014 10:14:06 +0400
> Subject: [PATCH] Clean up the reserved memory map from /proc/self/mmap 
> output
> which doesn't belong to an emulated process.
> 
> Signed-off-by: Mikhail Ilyin <address@hidden>

Hi Mikhail, all patches need to go through address@hidden (Cc'd).
qemu-stable is for fixes potentially applicable to older qemu releases, but
qemu-devel should be cc'd in either case.

> ---
>   linux-user/syscall.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index a50229d..8f406e4 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5122,6 +5122,13 @@ static int open_self_maps(void *cpu_env, int fd)
>               continue;
>           }
>           if (h2g_valid(min) && h2g_valid(max)) {
> +#ifdef CONFIG_USE_GUEST_BASE
> +            if (RESERVED_VA) {
> +                if (mmap_next_start == h2g(max)) {
> +                    continue;
> +                }
> +            }
> +#endif
>               dprintf(fd, TARGET_ABI_FMT_lx "-" TARGET_ABI_FMT_lx
>                       " %c%c%c%c %08" PRIx64 " %02x:%02x %d %s%s\n",
>                       h2g(min), h2g(max), flag_r, flag_w,
> -- 
> 1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]