* [Qemu-devel] [PATCH] linux-user: /proc/self/maps content
@ 2014-08-05 11:10 Mikhail Ilyin
2014-08-05 11:47 ` Riku Voipio
0 siblings, 1 reply; 5+ messages in thread
From: Mikhail Ilyin @ 2014-08-05 11:10 UTC (permalink / raw)
To: qemu-devel; +Cc: m.ilin, riku.voipio
Build /proc/self/maps doing a match against guest memory translation table.
Output only that map records which are valid for guest memory layout.
Signed-off-by: Mikhail Ilyin <m.ilin@samsung.com>
---
include/exec/cpu-all.h | 2 ++
linux-user/syscall.c | 25 ++++++++++---------------
2 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index f91581f..f9d132f 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -198,6 +198,8 @@ extern unsigned long reserved_va;
#define RESERVED_VA 0ul
#endif
+#define GUEST_ADDR_MAX (RESERVED_VA ? RESERVED_VA : \
+ (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
#endif
/* page related stuff */
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index a50229d..189a8c0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5092,10 +5092,8 @@ static int open_self_cmdline(void *cpu_env, int fd)
static int open_self_maps(void *cpu_env, int fd)
{
-#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
TaskState *ts = cpu->opaque;
-#endif
FILE *fp;
char *line = NULL;
size_t len = 0;
@@ -5118,13 +5116,18 @@ static int open_self_maps(void *cpu_env, int fd)
if ((fields < 10) || (fields > 11)) {
continue;
}
- if (!strncmp(path, "[stack]", 7)) {
- continue;
- }
- if (h2g_valid(min) && h2g_valid(max)) {
+ if (h2g_valid(min)) {
+ int flags = page_get_flags(h2g(min));
+ max = h2g_valid(max - 1) ? max : (uint64_t)g2h(GUEST_ADDR_MAX);
+ if (page_check_range(h2g(min), max - min, flags) == -1) {
+ continue;
+ }
+ if (h2g(min) == ts->info->stack_limit) {
+ pstrcpy(path, sizeof(path), " [stack]");
+ }
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,
+ h2g(min), h2g(max - 1) + 1, flag_r, flag_w,
flag_x, flag_p, offset, dev_maj, dev_min, inode,
path[0] ? " " : "", path);
}
@@ -5133,14 +5136,6 @@ static int open_self_maps(void *cpu_env, int fd)
free(line);
fclose(fp);
-#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
- dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n",
- (unsigned long long)ts->info->stack_limit,
- (unsigned long long)(ts->info->start_stack +
- (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
- (unsigned long long)0);
-#endif
-
return 0;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user: /proc/self/maps content
2014-08-05 11:10 [Qemu-devel] [PATCH] linux-user: /proc/self/maps content Mikhail Ilyin
@ 2014-08-05 11:47 ` Riku Voipio
2014-08-05 13:24 ` Mikhail Ilin
0 siblings, 1 reply; 5+ messages in thread
From: Riku Voipio @ 2014-08-05 11:47 UTC (permalink / raw)
To: Mikhail Ilyin; +Cc: qemu-devel
Hi,
On Tue, Aug 05, 2014 at 03:10:07PM +0400, Mikhail Ilyin wrote:
> Build /proc/self/maps doing a match against guest memory translation table.
> Output only that map records which are valid for guest memory layout.
This is clear improvement, for most archs. But seems aarch64, openrisc still
leak host maps. It's not a regression, same issue before the patch.
+ /home/voipio/linaro/qemu/obj/alpha-linux-user/qemu-alpha /home/voipio/linaro/qemu-smoke/alpha/busybox cat /proc/self/maps
0000000120000000-00000001201cc000 r-xp 00000000 fe:00 8784862 /home/voipio/linaro/qemu-smoke/alpha/busybox
00000001201dc000-00000001201e0000 rw-p 001cc000 fe:00 8784862 /home/voipio/linaro/qemu-smoke/alpha/busybox
00000001201e0000-000000012020a000 rw-p 00000000 00:00 0
0000004000000000-0000004000002000 ---p 00000000 00:00 0
0000004000002000-0000004000802000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/arm-linux-user/qemu-arm /home/voipio/linaro/qemu-smoke/armel/busybox cat /proc/self/maps
00008000-0014b000 r-xp 00000000 fe:00 8784905 /home/voipio/linaro/qemu-smoke/armel/busybox
00153000-00154000 rw-p 00143000 fe:00 8784905 /home/voipio/linaro/qemu-smoke/armel/busybox
00154000-0017b000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64 /home/voipio/linaro/qemu-smoke/arm64/busybox cat /proc/self/maps
00400000-00572000 r-xp 00000000 fe:00 8784917 /home/voipio/linaro/qemu-smoke/arm64/busybox
00572000-00581000 ---p 00000000 00:00 0
00581000-00584000 rw-p 00171000 fe:00 8784917 /home/voipio/linaro/qemu-smoke/arm64/busybox
00584000-005ac000 rw-p 00000000 00:00 0
4000000000-4000001000 ---p 00000000 00:00 0
4000001000-4000811000 rw-p 00000000 00:00 0
7f38e312b000-7f38e6d2b000 rw-p 00000000 00:00 0
7f38e6d2b000-7f38e6d86000 r-xp 00000000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
7f38e6d86000-7f38e6f86000 ---p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
7f38e6f86000-7f38e6f87000 rw-p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
7f38e6f87000-7f38e7126000 r-xp 00000000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7f38e7126000-7f38e7326000 ---p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7f38e7326000-7f38e732a000 r--p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7f38e732a000-7f38e732c000 rw-p 001a3000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7f38e732c000-7f38e7330000 rw-p 00000000 00:00 0
7f38e7330000-7f38e7348000 r-xp 00000000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7f38e7348000-7f38e7547000 ---p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7f38e7547000-7f38e7548000 r--p 00017000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7f38e7548000-7f38e7549000 rw-p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7f38e7549000-7f38e754d000 rw-p 00000000 00:00 0
7f38e754d000-7f38e7563000 r-xp 00000000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f38e7563000-7f38e7762000 ---p 00016000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f38e7762000-7f38e7763000 rw-p 00015000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f38e7763000-7f38e7863000 r-xp 00000000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7f38e7863000-7f38e7a62000 ---p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7f38e7a62000-7f38e7a63000 r--p 000ff000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7f38e7a63000-7f38e7a64000 rw-p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7f38e7a64000-7f38e7b50000 r-xp 00000000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7f38e7b50000-7f38e7d50000 ---p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7f38e7d50000-7f38e7d58000 r--p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7f38e7d58000-7f38e7d5a000 rw-p 000f4000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7f38e7d5a000-7f38e7d6f000 rw-p 00000000 00:00 0
7f38e7d6f000-7f38e7d76000 r-xp 00000000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7f38e7d76000-7f38e7f75000 ---p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7f38e7f75000-7f38e7f76000 r--p 00006000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7f38e7f76000-7f38e7f77000 rw-p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7f38e7f77000-7f38e7f8e000 r-xp 00000000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f38e7f8e000-7f38e818d000 ---p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f38e818d000-7f38e818e000 r--p 00016000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f38e818e000-7f38e818f000 rw-p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f38e818f000-7f38e8295000 r-xp 00000000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7f38e8295000-7f38e8494000 ---p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7f38e8494000-7f38e8495000 r--p 00105000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7f38e8495000-7f38e8496000 rw-p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7f38e8496000-7f38e8497000 rw-p 00000000 00:00 0
7f38e8497000-7f38e8498000 r-xp 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7f38e8498000-7f38e8697000 ---p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7f38e8697000-7f38e8698000 r--p 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7f38e8698000-7f38e8699000 rw-p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7f38e8699000-7f38e86b9000 r-xp 00000000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
7f38e885a000-7f38e88a1000 rw-p 00000000 00:00 0
7f38e88a7000-7f38e88b9000 rw-p 00000000 00:00 0
7f38e88b9000-7f38e88ba000 r--p 00020000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
7f38e88ba000-7f38e88bb000 rw-p 00021000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
7f38e88bb000-7f38e88bc000 rw-p 00000000 00:00 0
7f38e88bc000-7f38e8a40000 r-xp 00000000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
7f38e8c3f000-7f38e8c7a000 r--p 00183000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
7f38e8c7a000-7f38e8c81000 rw-p 001be000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
7f38e8c81000-7f38e8cd6000 rw-p 00000000 00:00 0
7f38e8cd6000-7f38eacd7000 rwxp 00000000 00:00 0
7f38eacd7000-7f38eacea000 rw-p 00000000 00:00 0
7f38ec1c1000-7f38ec203000 rw-p 00000000 00:00 0 [heap]
7fff89d8a000-7fff89dab000 rw-p 00000000 00:00 0 [stack]
7fff89db5000-7fff89db7000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
+ /home/voipio/linaro/qemu/obj/armeb-linux-user/qemu-armeb /home/voipio/linaro/qemu-smoke/armeb/busybox cat /proc/self/maps
00008000-000be000 r-xp 00000000 fe:00 8784894 /home/voipio/linaro/qemu-smoke/armeb/busybox
000c5000-000c6000 rw-p 000b5000 fe:00 8784894 /home/voipio/linaro/qemu-smoke/armeb/busybox
000c6000-000cc000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/cris-linux-user/qemu-cris /home/voipio/linaro/qemu-smoke/cris/busyboxv32 cat /proc/self/maps
00080000-00230000 r-xp 00000000 fe:00 8784890 /home/voipio/linaro/qemu-smoke/cris/busyboxv32
00230000-00234000 rw-p 001ae000 fe:00 8784890 /home/voipio/linaro/qemu-smoke/cris/busyboxv32
00234000-0025e000 rw-p 00000000 00:00 0
f67fe000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/m68k-linux-user/qemu-m68k /home/voipio/linaro/qemu-smoke/m68k/busybox cat /proc/self/maps
80000000-80126000 r-xp 00000000 fe:00 8784884 /home/voipio/linaro/qemu-smoke/m68k/busybox
80126000-80128000 rw-p 00124000 fe:00 8784884 /home/voipio/linaro/qemu-smoke/m68k/busybox
80128000-80150000 rw-p 00000000 00:00 0
f67fe000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/microblazeel-linux-user/qemu-microblazeel /home/voipio/linaro/qemu-smoke/mblzel/busybox cat /proc/self/maps
10000000-101dc000 r-xp 00000000 fe:00 8784880 /home/voipio/linaro/qemu-smoke/mblzel/busybox
101dc000-101e0000 rw-p 001dc000 fe:00 8784880 /home/voipio/linaro/qemu-smoke/mblzel/busybox
101e0000-10206000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/microblaze-linux-user/qemu-microblaze /home/voipio/linaro/qemu-smoke/mblz/busybox cat /proc/self/maps
10000000-101dd000 r-xp 00000000 fe:00 8787324 /home/voipio/linaro/qemu-smoke/mblz/busybox
101dd000-101e1000 rw-p 001dd000 fe:00 8787324 /home/voipio/linaro/qemu-smoke/mblz/busybox
101e1000-10207000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/mipsel-linux-user/qemu-mipsel /home/voipio/linaro/qemu-smoke/mipsel/busybox cat /proc/self/maps
00400000-005a3000 r-xp 00000000 fe:00 8784898 /home/voipio/linaro/qemu-smoke/mipsel/busybox
005b3000-005bc000 rw-p 001a3000 fe:00 8784898 /home/voipio/linaro/qemu-smoke/mipsel/busybox
005bc000-005e2000 rw-p 00000000 00:00 0
767ff000-76800000 ---p 00000000 00:00 0
76800000-77000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/mips-linux-user/qemu-mips /home/voipio/linaro/qemu-smoke/mips/busybox cat /proc/self/maps
00400000-005a2000 r-xp 00000000 fe:00 8784907 /home/voipio/linaro/qemu-smoke/mips/busybox
005b2000-005bb000 rw-p 001a2000 fe:00 8784907 /home/voipio/linaro/qemu-smoke/mips/busybox
005bb000-005e1000 rw-p 00000000 00:00 0
767ff000-76800000 ---p 00000000 00:00 0
76800000-77000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/mips64el-linux-user/qemu-mips64el /home/voipio/linaro/qemu-smoke/mips64el/busybox cat /proc/self/maps
0000000120000000-00000001200eb000 r-xp 00000000 fe:00 8784909 /home/voipio/linaro/qemu-smoke/mips64el/busybox
00000001200fb000-0000000120100000 rw-p 000eb000 fe:00 8784909 /home/voipio/linaro/qemu-smoke/mips64el/busybox
0000000120100000-0000000120107000 rw-p 00000000 00:00 0
0000004000000000-0000004000001000 ---p 00000000 00:00 0
0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/mips64-linux-user/qemu-mips64 /home/voipio/linaro/qemu-smoke/mips64/busybox cat /proc/self/maps
0000000120000000-00000001200eb000 r-xp 00000000 fe:00 8784896 /home/voipio/linaro/qemu-smoke/mips64/busybox
00000001200fb000-0000000120100000 rw-p 000eb000 fe:00 8784896 /home/voipio/linaro/qemu-smoke/mips64/busybox
0000000120100000-0000000120107000 rw-p 00000000 00:00 0
0000004000000000-0000004000001000 ---p 00000000 00:00 0
0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32 /home/voipio/linaro/qemu-smoke/or32/busybox cat /proc/self/maps
7fe12b32f000-7fe12b330000 ---p 00000000 00:00 0
7fe12b330000-7fe12b47e000 r-xp 00002000 fe:00 8784874 /home/voipio/linaro/qemu-smoke/or32/busybox
7fe12b47e000-7fe12b484000 rw-p 00000000 00:00 0
7fe12b484000-7fe221b2e000 ---p 00000000 00:00 0
7fe221b2e000-7fe221b30000 ---p 00000000 00:00 0
7fe221b30000-7fe222330000 rw-p 00000000 00:00 0
7fe222330000-7fe222331000 ---p 00000000 00:00 0
7fe222331000-7fe225731000 rw-p 00000000 00:00 0
7fe225731000-7fe22578c000 r-xp 00000000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
7fe22578c000-7fe22598c000 ---p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
7fe22598c000-7fe22598d000 rw-p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
7fe22598d000-7fe225b2c000 r-xp 00000000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7fe225b2c000-7fe225d2c000 ---p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7fe225d2c000-7fe225d30000 r--p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7fe225d30000-7fe225d32000 rw-p 001a3000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
7fe225d32000-7fe225d36000 rw-p 00000000 00:00 0
7fe225d36000-7fe225d4e000 r-xp 00000000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7fe225d4e000-7fe225f4d000 ---p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7fe225f4d000-7fe225f4e000 r--p 00017000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7fe225f4e000-7fe225f4f000 rw-p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
7fe225f4f000-7fe225f53000 rw-p 00000000 00:00 0
7fe225f53000-7fe225f69000 r-xp 00000000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fe225f69000-7fe226168000 ---p 00016000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fe226168000-7fe226169000 rw-p 00015000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fe226169000-7fe226269000 r-xp 00000000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7fe226269000-7fe226468000 ---p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7fe226468000-7fe226469000 r--p 000ff000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7fe226469000-7fe22646a000 rw-p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
7fe22646a000-7fe226556000 r-xp 00000000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7fe226556000-7fe226756000 ---p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7fe226756000-7fe22675e000 r--p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7fe22675e000-7fe226760000 rw-p 000f4000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
7fe226760000-7fe226775000 rw-p 00000000 00:00 0
7fe226775000-7fe22677c000 r-xp 00000000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7fe22677c000-7fe22697b000 ---p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7fe22697b000-7fe22697c000 r--p 00006000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7fe22697c000-7fe22697d000 rw-p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
7fe22697d000-7fe226994000 r-xp 00000000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe226994000-7fe226b93000 ---p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe226b93000-7fe226b94000 r--p 00016000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe226b94000-7fe226b95000 rw-p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe226b95000-7fe226c9b000 r-xp 00000000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7fe226c9b000-7fe226e9a000 ---p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7fe226e9a000-7fe226e9b000 r--p 00105000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7fe226e9b000-7fe226e9c000 rw-p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
7fe226e9c000-7fe226e9d000 rw-p 00000000 00:00 0
7fe226e9d000-7fe226e9e000 r-xp 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7fe226e9e000-7fe22709d000 ---p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7fe22709d000-7fe22709e000 r--p 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7fe22709e000-7fe22709f000 rw-p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
7fe22709f000-7fe2270bf000 r-xp 00000000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
7fe227272000-7fe2272a7000 rw-p 00000000 00:00 0
7fe2272ad000-7fe2272bf000 rw-p 00000000 00:00 0
7fe2272bf000-7fe2272c0000 r--p 00020000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
7fe2272c0000-7fe2272c1000 rw-p 00021000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
7fe2272c1000-7fe2272c2000 rw-p 00000000 00:00 0
7fe2272c2000-7fe227397000 r-xp 00000000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
7fe227596000-7fe2275be000 r--p 000d4000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
7fe2275be000-7fe2275c5000 rw-p 000fc000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
7fe2275c5000-7fe227619000 rw-p 00000000 00:00 0
7fe227619000-7fe22961a000 rwxp 00000000 00:00 0
7fe22961a000-7fe229625000 rw-p 00000000 00:00 0
7fe2297dd000-7fe2297fe000 rw-p 00000000 00:00 0 [heap]
7fff48b01000-7fff48b22000 rw-p 00000000 00:00 0 [stack]
7fff48bfe000-7fff48c00000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
+ /home/voipio/linaro/qemu/obj/ppc-linux-user/qemu-ppc /home/voipio/linaro/qemu-smoke/powerpc/busybox cat /proc/self/maps
10000000-1016d000 r-xp 00000000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
1017d000-1017e000 rw-p 0016d000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
1017e000-101a5000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/ppc64-linux-user/qemu-ppc64 /home/voipio/linaro/qemu-smoke/ppc64/busybox cat /proc/self/maps
0000000010000000-0000000010004000 r-xp 00000000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010004000-0000000010013000 rwxp 00004000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010013000-0000000010015000 r-xp 00013000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010015000-0000000010016000 rwxp 00015000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010016000-0000000010018000 r-xp 00016000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010018000-0000000010019000 rwxp 00018000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010019000-000000001001a000 r-xp 00019000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001001a000-000000001001b000 rwxp 0001a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001001b000-000000001001c000 r-xp 0001b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001001c000-000000001002b000 rwxp 0001c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001002b000-000000001002c000 r-xp 0002b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001002c000-0000000010030000 rwxp 0002c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010030000-0000000010033000 r-xp 00030000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010033000-0000000010048000 rwxp 00033000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010048000-0000000010049000 r-xp 00048000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010049000-000000001004a000 rwxp 00049000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001004a000-000000001004b000 r-xp 0004a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001004b000-000000001004d000 rwxp 0004b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001004d000-000000001004e000 r-xp 0004d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001004e000-000000001004f000 rwxp 0004e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001004f000-0000000010050000 r-xp 0004f000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010050000-000000001006a000 rwxp 00050000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001006a000-000000001006d000 r-xp 0006a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001006d000-000000001007d000 rwxp 0006d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001007d000-000000001007e000 r-xp 0007d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001007e000-00000000100a0000 rwxp 0007e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
00000000100a0000-00000000100a1000 r-xp 000a0000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
00000000100a1000-00000000100bc000 rwxp 000a1000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
00000000100bc000-00000000100c0000 r-xp 000bc000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
00000000100c0000-000000001013a000 rwxp 000c0000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001013a000-000000001013b000 r-xp 0013a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001013b000-000000001016d000 rwxp 0013b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001016d000-000000001016e000 r-xp 0016d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001016e000-000000001017c000 rwxp 0016e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001017c000-000000001017d000 r-xp 0017c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001017d000-000000001017e000 rwxp 0017d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
000000001017e000-0000000010181000 r-xp 0017e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010181000-0000000010186000 rwxp 00181000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010186000-0000000010188000 r-xp 00186000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
0000000010188000-00000000101f0000 rwxp 00188000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
00000000101f0000-00000000101f7000 rwxp 00000000 00:00 0
00000000101f7000-0000000010219000 rw-p 00000000 00:00 0
0000004000000000-0000004000001000 ---p 00000000 00:00 0
0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/ppc64abi32-linux-user/qemu-ppc64abi32 /home/voipio/linaro/qemu-smoke/powerpc/busybox cat /proc/self/maps
10000000-1016d000 r-xp 00000000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
1017d000-1017e000 rw-p 0016d000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
1017e000-101a5000 rw-p 00000000 00:00 0
40000000-40001000 ---p 00000000 00:00 0
40001000-40801000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/sh4-linux-user/qemu-sh4 /home/voipio/linaro/qemu-smoke/sh4/busybox cat /proc/self/maps
00400000-00548000 r-xp 00000000 fe:00 8784878 /home/voipio/linaro/qemu-smoke/sh4/busybox
00557000-00559000 rw-p 00147000 fe:00 8784878 /home/voipio/linaro/qemu-smoke/sh4/busybox
00559000-0057f000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/sh4eb-linux-user/qemu-sh4eb /home/voipio/linaro/qemu-smoke/sh4eb/busybox cat /proc/self/maps
00400000-004ab000 r-xp 00000000 fe:00 8784903 /home/voipio/linaro/qemu-smoke/sh4eb/busybox
004ba000-004bb000 rw-p 000aa000 fe:00 8784903 /home/voipio/linaro/qemu-smoke/sh4eb/busybox
004bb000-004c1000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/s390x-linux-user/qemu-s390x /home/voipio/linaro/qemu-smoke/s390x/busybox cat /proc/self/maps
0000000080000000-0000000080233000 r-xp 00000000 fe:00 8784870 /home/voipio/linaro/qemu-smoke/s390x/busybox
0000000080233000-0000000080235000 rw-p 00232000 fe:00 8784870 /home/voipio/linaro/qemu-smoke/s390x/busybox
0000000080235000-000000008025e000 rw-p 00000000 00:00 0
0000004000000000-0000004000001000 ---p 00000000 00:00 0
0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/sparc64-linux-user/qemu-sparc64 /home/voipio/linaro/qemu-smoke/sparc64/busybox cat /proc/self/maps
0000000000100000-0000000000266000 r-xp 00000000 fe:00 8784872 /home/voipio/linaro/qemu-smoke/sparc64/busybox
0000000000364000-0000000000366000 rw-p 00164000 fe:00 8784872 /home/voipio/linaro/qemu-smoke/sparc64/busybox
0000000000366000-0000000000390000 rw-p 00000000 00:00 0
0000004000000000-0000004000002000 ---p 00000000 00:00 0
0000004000002000-0000004000802000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/sparc32plus-linux-user/qemu-sparc32plus /home/voipio/linaro/qemu-smoke/sparc/busybox cat /proc/self/maps
00010000-0017a000 r-xp 00000000 fe:00 8784864 /home/voipio/linaro/qemu-smoke/sparc/busybox
00188000-00189000 rw-p 00168000 fe:00 8784864 /home/voipio/linaro/qemu-smoke/sparc/busybox
00189000-001b2000 rw-p 00000000 00:00 0
40000000-40002000 ---p 00000000 00:00 0
40002000-40802000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/i386-linux-user/qemu-i386 /home/voipio/linaro/qemu-smoke/i386/busybox cat /proc/self/maps
08048000-0817d000 r-xp 00000000 fe:00 8784913 /home/voipio/linaro/qemu-smoke/i386/busybox
0817d000-0817f000 rw-p 00134000 fe:00 8784913 /home/voipio/linaro/qemu-smoke/i386/busybox
0817f000-081a5000 rw-p 00000000 00:00 0
f67fd000-f67ff000 rw-p 00000000 00:00 0
f67ff000-f6800000 ---p 00000000 00:00 0
f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
+ /home/voipio/linaro/qemu/obj/x86_64-linux-user/qemu-x86_64 /home/voipio/linaro/qemu-smoke/amd64/busybox cat /proc/self/maps
0000000000400000-0000000000572000 r-xp 00000000 fe:00 8787320 /home/voipio/linaro/qemu-smoke/amd64/busybox
0000000000772000-0000000000774000 rw-p 00172000 fe:00 8787320 /home/voipio/linaro/qemu-smoke/amd64/busybox
0000000000774000-000000000079d000 rw-p 00000000 00:00 0
0000004000000000-0000004000001000 ---p 00000000 00:00 0
0000004000001000-0000004000803000 rw-p 00000000 00:00 0 [stack]
> Signed-off-by: Mikhail Ilyin <m.ilin@samsung.com>
> ---
> include/exec/cpu-all.h | 2 ++
> linux-user/syscall.c | 25 ++++++++++---------------
> 2 files changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
> index f91581f..f9d132f 100644
> --- a/include/exec/cpu-all.h
> +++ b/include/exec/cpu-all.h
> @@ -198,6 +198,8 @@ extern unsigned long reserved_va;
> #define RESERVED_VA 0ul
> #endif
>
> +#define GUEST_ADDR_MAX (RESERVED_VA ? RESERVED_VA : \
> + (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
> #endif
>
> /* page related stuff */
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index a50229d..189a8c0 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5092,10 +5092,8 @@ static int open_self_cmdline(void *cpu_env, int fd)
>
> static int open_self_maps(void *cpu_env, int fd)
> {
> -#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
> CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
> TaskState *ts = cpu->opaque;
> -#endif
> FILE *fp;
> char *line = NULL;
> size_t len = 0;
> @@ -5118,13 +5116,18 @@ static int open_self_maps(void *cpu_env, int fd)
> if ((fields < 10) || (fields > 11)) {
> continue;
> }
> - if (!strncmp(path, "[stack]", 7)) {
> - continue;
> - }
> - if (h2g_valid(min) && h2g_valid(max)) {
> + if (h2g_valid(min)) {
> + int flags = page_get_flags(h2g(min));
> + max = h2g_valid(max - 1) ? max : (uint64_t)g2h(GUEST_ADDR_MAX);
> + if (page_check_range(h2g(min), max - min, flags) == -1) {
> + continue;
> + }
> + if (h2g(min) == ts->info->stack_limit) {
> + pstrcpy(path, sizeof(path), " [stack]");
> + }
> 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,
> + h2g(min), h2g(max - 1) + 1, flag_r, flag_w,
> flag_x, flag_p, offset, dev_maj, dev_min, inode,
> path[0] ? " " : "", path);
> }
> @@ -5133,14 +5136,6 @@ static int open_self_maps(void *cpu_env, int fd)
> free(line);
> fclose(fp);
>
> -#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
> - dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n",
> - (unsigned long long)ts->info->stack_limit,
> - (unsigned long long)(ts->info->start_stack +
> - (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
> - (unsigned long long)0);
> -#endif
> -
> return 0;
> }
>
> --
> 1.9.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user: /proc/self/maps content
2014-08-05 11:47 ` Riku Voipio
@ 2014-08-05 13:24 ` Mikhail Ilin
2014-08-06 8:22 ` Riku Voipio
0 siblings, 1 reply; 5+ messages in thread
From: Mikhail Ilin @ 2014-08-05 13:24 UTC (permalink / raw)
To: Riku Voipio; +Cc: m.ilin, qemu-devel
Thanks,
I've tested the sample for Aarch64 myself and found that the
approach should also work fine.
Translation layout:
$ qemu-aarch64 -strace /tmp/busybox-static cat /proc/self/maps
start end size prot
0000000000400000-00000000005ba000 00000000001ba000 r-x
00000000005c9000-00000000005d3000 000000000000a000 rw-
0000004000000000-0000004000001000 0000000000001000 ---
0000004000001000-0000004000801000 0000000000800000 rw-
/proc/self/maps output:
00400000-005ba000 r-xp 00000000 08:01 28837016
/tmp/busybox-static
005ba000-005c9000 ---p 00000000 00:00 0
005c9000-005cc000 rw-p 001b9000 08:01 28837016 /tmp/busybox-static
005cc000-005f4000 rw-p 00000000 00:00 0
60000000-602eb000 r-xp 00000000 08:01 55578769
/home/michail/my1/bin/qemu-aarch64
604eb000-604f6000 rw-p 002eb000 08:01 55578769
/home/michail/my1/bin/qemu-aarch64
604f6000-6054a000 rw-p 00000000 00:00 0
6054a000-6254b000 rwxp 00000000 00:00 0
6254b000-62577000 rw-p 00000000 00:00 0
63396000-633da000 rw-p 00000000 00:00 0 [heap]
4000000000-4000001000 ---p 00000000 00:00 0
4000001000-4000801000 rw-p 00000000 00:00 0
7ff830cab000-7ff8348fb000 rw-p 00000000 00:00 0
7fffb26ed000-7fffb270e000 rw-p 00000000 00:00 0 [stack]
7fffb27bb000-7fffb27bd000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
And the reason why it doesn't work for Aarch64 is openat call which is
used instead of open.
$ qemu-aarch64 -strace /tmp/busybox-static cat /proc/self/maps
483 setgid(1000,0,47,45,0,274886296116) = 0
483 setuid(1000,0,47,45,0,274886296116) = 0
483 openat(AT_FDCWD,"/proc/self/maps",O_RDONLY) = 3
483 read(3,0x7febf0,4096) = 1071
this call doesn't have additional preprocessing and called directly.
case TARGET_NR_openat:
if (!(p = lock_user_string(arg2)))
goto efault;
ret = get_errno(sys_openat(arg1,
path(p),
target_to_host_bitmask(arg3,
fcntl_flags_tbl),
arg4));
I believe OpenRISC case looks the same.
On 05.08.2014 15:47, Riku Voipio wrote:
> Hi,
>
> On Tue, Aug 05, 2014 at 03:10:07PM +0400, Mikhail Ilyin wrote:
>> Build /proc/self/maps doing a match against guest memory translation table.
>> Output only that map records which are valid for guest memory layout.
>
> This is clear improvement, for most archs. But seems aarch64, openrisc still
> leak host maps. It's not a regression, same issue before the patch.
>
> + /home/voipio/linaro/qemu/obj/alpha-linux-user/qemu-alpha /home/voipio/linaro/qemu-smoke/alpha/busybox cat /proc/self/maps
> 0000000120000000-00000001201cc000 r-xp 00000000 fe:00 8784862 /home/voipio/linaro/qemu-smoke/alpha/busybox
> 00000001201dc000-00000001201e0000 rw-p 001cc000 fe:00 8784862 /home/voipio/linaro/qemu-smoke/alpha/busybox
> 00000001201e0000-000000012020a000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000002000 ---p 00000000 00:00 0
> 0000004000002000-0000004000802000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/arm-linux-user/qemu-arm /home/voipio/linaro/qemu-smoke/armel/busybox cat /proc/self/maps
> 00008000-0014b000 r-xp 00000000 fe:00 8784905 /home/voipio/linaro/qemu-smoke/armel/busybox
> 00153000-00154000 rw-p 00143000 fe:00 8784905 /home/voipio/linaro/qemu-smoke/armel/busybox
> 00154000-0017b000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64 /home/voipio/linaro/qemu-smoke/arm64/busybox cat /proc/self/maps
> 00400000-00572000 r-xp 00000000 fe:00 8784917 /home/voipio/linaro/qemu-smoke/arm64/busybox
> 00572000-00581000 ---p 00000000 00:00 0
> 00581000-00584000 rw-p 00171000 fe:00 8784917 /home/voipio/linaro/qemu-smoke/arm64/busybox
> 00584000-005ac000 rw-p 00000000 00:00 0
> 4000000000-4000001000 ---p 00000000 00:00 0
> 4000001000-4000811000 rw-p 00000000 00:00 0
> 7f38e312b000-7f38e6d2b000 rw-p 00000000 00:00 0
> 7f38e6d2b000-7f38e6d86000 r-xp 00000000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> 7f38e6d86000-7f38e6f86000 ---p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> 7f38e6f86000-7f38e6f87000 rw-p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> 7f38e6f87000-7f38e7126000 r-xp 00000000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7f38e7126000-7f38e7326000 ---p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7f38e7326000-7f38e732a000 r--p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7f38e732a000-7f38e732c000 rw-p 001a3000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7f38e732c000-7f38e7330000 rw-p 00000000 00:00 0
> 7f38e7330000-7f38e7348000 r-xp 00000000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7f38e7348000-7f38e7547000 ---p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7f38e7547000-7f38e7548000 r--p 00017000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7f38e7548000-7f38e7549000 rw-p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7f38e7549000-7f38e754d000 rw-p 00000000 00:00 0
> 7f38e754d000-7f38e7563000 r-xp 00000000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 7f38e7563000-7f38e7762000 ---p 00016000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 7f38e7762000-7f38e7763000 rw-p 00015000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 7f38e7763000-7f38e7863000 r-xp 00000000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7f38e7863000-7f38e7a62000 ---p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7f38e7a62000-7f38e7a63000 r--p 000ff000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7f38e7a63000-7f38e7a64000 rw-p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7f38e7a64000-7f38e7b50000 r-xp 00000000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7f38e7b50000-7f38e7d50000 ---p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7f38e7d50000-7f38e7d58000 r--p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7f38e7d58000-7f38e7d5a000 rw-p 000f4000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7f38e7d5a000-7f38e7d6f000 rw-p 00000000 00:00 0
> 7f38e7d6f000-7f38e7d76000 r-xp 00000000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7f38e7d76000-7f38e7f75000 ---p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7f38e7f75000-7f38e7f76000 r--p 00006000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7f38e7f76000-7f38e7f77000 rw-p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7f38e7f77000-7f38e7f8e000 r-xp 00000000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7f38e7f8e000-7f38e818d000 ---p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7f38e818d000-7f38e818e000 r--p 00016000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7f38e818e000-7f38e818f000 rw-p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7f38e818f000-7f38e8295000 r-xp 00000000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7f38e8295000-7f38e8494000 ---p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7f38e8494000-7f38e8495000 r--p 00105000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7f38e8495000-7f38e8496000 rw-p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7f38e8496000-7f38e8497000 rw-p 00000000 00:00 0
> 7f38e8497000-7f38e8498000 r-xp 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7f38e8498000-7f38e8697000 ---p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7f38e8697000-7f38e8698000 r--p 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7f38e8698000-7f38e8699000 rw-p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7f38e8699000-7f38e86b9000 r-xp 00000000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> 7f38e885a000-7f38e88a1000 rw-p 00000000 00:00 0
> 7f38e88a7000-7f38e88b9000 rw-p 00000000 00:00 0
> 7f38e88b9000-7f38e88ba000 r--p 00020000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> 7f38e88ba000-7f38e88bb000 rw-p 00021000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> 7f38e88bb000-7f38e88bc000 rw-p 00000000 00:00 0
> 7f38e88bc000-7f38e8a40000 r-xp 00000000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
> 7f38e8c3f000-7f38e8c7a000 r--p 00183000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
> 7f38e8c7a000-7f38e8c81000 rw-p 001be000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
> 7f38e8c81000-7f38e8cd6000 rw-p 00000000 00:00 0
> 7f38e8cd6000-7f38eacd7000 rwxp 00000000 00:00 0
> 7f38eacd7000-7f38eacea000 rw-p 00000000 00:00 0
> 7f38ec1c1000-7f38ec203000 rw-p 00000000 00:00 0 [heap]
> 7fff89d8a000-7fff89dab000 rw-p 00000000 00:00 0 [stack]
> 7fff89db5000-7fff89db7000 r-xp 00000000 00:00 0 [vdso]
> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
> + /home/voipio/linaro/qemu/obj/armeb-linux-user/qemu-armeb /home/voipio/linaro/qemu-smoke/armeb/busybox cat /proc/self/maps
> 00008000-000be000 r-xp 00000000 fe:00 8784894 /home/voipio/linaro/qemu-smoke/armeb/busybox
> 000c5000-000c6000 rw-p 000b5000 fe:00 8784894 /home/voipio/linaro/qemu-smoke/armeb/busybox
> 000c6000-000cc000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/cris-linux-user/qemu-cris /home/voipio/linaro/qemu-smoke/cris/busyboxv32 cat /proc/self/maps
> 00080000-00230000 r-xp 00000000 fe:00 8784890 /home/voipio/linaro/qemu-smoke/cris/busyboxv32
> 00230000-00234000 rw-p 001ae000 fe:00 8784890 /home/voipio/linaro/qemu-smoke/cris/busyboxv32
> 00234000-0025e000 rw-p 00000000 00:00 0
> f67fe000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/m68k-linux-user/qemu-m68k /home/voipio/linaro/qemu-smoke/m68k/busybox cat /proc/self/maps
> 80000000-80126000 r-xp 00000000 fe:00 8784884 /home/voipio/linaro/qemu-smoke/m68k/busybox
> 80126000-80128000 rw-p 00124000 fe:00 8784884 /home/voipio/linaro/qemu-smoke/m68k/busybox
> 80128000-80150000 rw-p 00000000 00:00 0
> f67fe000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/microblazeel-linux-user/qemu-microblazeel /home/voipio/linaro/qemu-smoke/mblzel/busybox cat /proc/self/maps
> 10000000-101dc000 r-xp 00000000 fe:00 8784880 /home/voipio/linaro/qemu-smoke/mblzel/busybox
> 101dc000-101e0000 rw-p 001dc000 fe:00 8784880 /home/voipio/linaro/qemu-smoke/mblzel/busybox
> 101e0000-10206000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/microblaze-linux-user/qemu-microblaze /home/voipio/linaro/qemu-smoke/mblz/busybox cat /proc/self/maps
> 10000000-101dd000 r-xp 00000000 fe:00 8787324 /home/voipio/linaro/qemu-smoke/mblz/busybox
> 101dd000-101e1000 rw-p 001dd000 fe:00 8787324 /home/voipio/linaro/qemu-smoke/mblz/busybox
> 101e1000-10207000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/mipsel-linux-user/qemu-mipsel /home/voipio/linaro/qemu-smoke/mipsel/busybox cat /proc/self/maps
> 00400000-005a3000 r-xp 00000000 fe:00 8784898 /home/voipio/linaro/qemu-smoke/mipsel/busybox
> 005b3000-005bc000 rw-p 001a3000 fe:00 8784898 /home/voipio/linaro/qemu-smoke/mipsel/busybox
> 005bc000-005e2000 rw-p 00000000 00:00 0
> 767ff000-76800000 ---p 00000000 00:00 0
> 76800000-77000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/mips-linux-user/qemu-mips /home/voipio/linaro/qemu-smoke/mips/busybox cat /proc/self/maps
> 00400000-005a2000 r-xp 00000000 fe:00 8784907 /home/voipio/linaro/qemu-smoke/mips/busybox
> 005b2000-005bb000 rw-p 001a2000 fe:00 8784907 /home/voipio/linaro/qemu-smoke/mips/busybox
> 005bb000-005e1000 rw-p 00000000 00:00 0
> 767ff000-76800000 ---p 00000000 00:00 0
> 76800000-77000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/mips64el-linux-user/qemu-mips64el /home/voipio/linaro/qemu-smoke/mips64el/busybox cat /proc/self/maps
> 0000000120000000-00000001200eb000 r-xp 00000000 fe:00 8784909 /home/voipio/linaro/qemu-smoke/mips64el/busybox
> 00000001200fb000-0000000120100000 rw-p 000eb000 fe:00 8784909 /home/voipio/linaro/qemu-smoke/mips64el/busybox
> 0000000120100000-0000000120107000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000001000 ---p 00000000 00:00 0
> 0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/mips64-linux-user/qemu-mips64 /home/voipio/linaro/qemu-smoke/mips64/busybox cat /proc/self/maps
> 0000000120000000-00000001200eb000 r-xp 00000000 fe:00 8784896 /home/voipio/linaro/qemu-smoke/mips64/busybox
> 00000001200fb000-0000000120100000 rw-p 000eb000 fe:00 8784896 /home/voipio/linaro/qemu-smoke/mips64/busybox
> 0000000120100000-0000000120107000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000001000 ---p 00000000 00:00 0
> 0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32 /home/voipio/linaro/qemu-smoke/or32/busybox cat /proc/self/maps
> 7fe12b32f000-7fe12b330000 ---p 00000000 00:00 0
> 7fe12b330000-7fe12b47e000 r-xp 00002000 fe:00 8784874 /home/voipio/linaro/qemu-smoke/or32/busybox
> 7fe12b47e000-7fe12b484000 rw-p 00000000 00:00 0
> 7fe12b484000-7fe221b2e000 ---p 00000000 00:00 0
> 7fe221b2e000-7fe221b30000 ---p 00000000 00:00 0
> 7fe221b30000-7fe222330000 rw-p 00000000 00:00 0
> 7fe222330000-7fe222331000 ---p 00000000 00:00 0
> 7fe222331000-7fe225731000 rw-p 00000000 00:00 0
> 7fe225731000-7fe22578c000 r-xp 00000000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> 7fe22578c000-7fe22598c000 ---p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> 7fe22598c000-7fe22598d000 rw-p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> 7fe22598d000-7fe225b2c000 r-xp 00000000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7fe225b2c000-7fe225d2c000 ---p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7fe225d2c000-7fe225d30000 r--p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7fe225d30000-7fe225d32000 rw-p 001a3000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> 7fe225d32000-7fe225d36000 rw-p 00000000 00:00 0
> 7fe225d36000-7fe225d4e000 r-xp 00000000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7fe225d4e000-7fe225f4d000 ---p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7fe225f4d000-7fe225f4e000 r--p 00017000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7fe225f4e000-7fe225f4f000 rw-p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> 7fe225f4f000-7fe225f53000 rw-p 00000000 00:00 0
> 7fe225f53000-7fe225f69000 r-xp 00000000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 7fe225f69000-7fe226168000 ---p 00016000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 7fe226168000-7fe226169000 rw-p 00015000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> 7fe226169000-7fe226269000 r-xp 00000000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7fe226269000-7fe226468000 ---p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7fe226468000-7fe226469000 r--p 000ff000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7fe226469000-7fe22646a000 rw-p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> 7fe22646a000-7fe226556000 r-xp 00000000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7fe226556000-7fe226756000 ---p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7fe226756000-7fe22675e000 r--p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7fe22675e000-7fe226760000 rw-p 000f4000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> 7fe226760000-7fe226775000 rw-p 00000000 00:00 0
> 7fe226775000-7fe22677c000 r-xp 00000000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7fe22677c000-7fe22697b000 ---p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7fe22697b000-7fe22697c000 r--p 00006000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7fe22697c000-7fe22697d000 rw-p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> 7fe22697d000-7fe226994000 r-xp 00000000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7fe226994000-7fe226b93000 ---p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7fe226b93000-7fe226b94000 r--p 00016000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7fe226b94000-7fe226b95000 rw-p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> 7fe226b95000-7fe226c9b000 r-xp 00000000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7fe226c9b000-7fe226e9a000 ---p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7fe226e9a000-7fe226e9b000 r--p 00105000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7fe226e9b000-7fe226e9c000 rw-p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> 7fe226e9c000-7fe226e9d000 rw-p 00000000 00:00 0
> 7fe226e9d000-7fe226e9e000 r-xp 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7fe226e9e000-7fe22709d000 ---p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7fe22709d000-7fe22709e000 r--p 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7fe22709e000-7fe22709f000 rw-p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> 7fe22709f000-7fe2270bf000 r-xp 00000000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> 7fe227272000-7fe2272a7000 rw-p 00000000 00:00 0
> 7fe2272ad000-7fe2272bf000 rw-p 00000000 00:00 0
> 7fe2272bf000-7fe2272c0000 r--p 00020000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> 7fe2272c0000-7fe2272c1000 rw-p 00021000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> 7fe2272c1000-7fe2272c2000 rw-p 00000000 00:00 0
> 7fe2272c2000-7fe227397000 r-xp 00000000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
> 7fe227596000-7fe2275be000 r--p 000d4000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
> 7fe2275be000-7fe2275c5000 rw-p 000fc000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
> 7fe2275c5000-7fe227619000 rw-p 00000000 00:00 0
> 7fe227619000-7fe22961a000 rwxp 00000000 00:00 0
> 7fe22961a000-7fe229625000 rw-p 00000000 00:00 0
> 7fe2297dd000-7fe2297fe000 rw-p 00000000 00:00 0 [heap]
> 7fff48b01000-7fff48b22000 rw-p 00000000 00:00 0 [stack]
> 7fff48bfe000-7fff48c00000 r-xp 00000000 00:00 0 [vdso]
> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
> + /home/voipio/linaro/qemu/obj/ppc-linux-user/qemu-ppc /home/voipio/linaro/qemu-smoke/powerpc/busybox cat /proc/self/maps
> 10000000-1016d000 r-xp 00000000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> 1017d000-1017e000 rw-p 0016d000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> 1017e000-101a5000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/ppc64-linux-user/qemu-ppc64 /home/voipio/linaro/qemu-smoke/ppc64/busybox cat /proc/self/maps
> 0000000010000000-0000000010004000 r-xp 00000000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010004000-0000000010013000 rwxp 00004000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010013000-0000000010015000 r-xp 00013000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010015000-0000000010016000 rwxp 00015000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010016000-0000000010018000 r-xp 00016000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010018000-0000000010019000 rwxp 00018000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010019000-000000001001a000 r-xp 00019000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001001a000-000000001001b000 rwxp 0001a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001001b000-000000001001c000 r-xp 0001b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001001c000-000000001002b000 rwxp 0001c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001002b000-000000001002c000 r-xp 0002b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001002c000-0000000010030000 rwxp 0002c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010030000-0000000010033000 r-xp 00030000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010033000-0000000010048000 rwxp 00033000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010048000-0000000010049000 r-xp 00048000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010049000-000000001004a000 rwxp 00049000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001004a000-000000001004b000 r-xp 0004a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001004b000-000000001004d000 rwxp 0004b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001004d000-000000001004e000 r-xp 0004d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001004e000-000000001004f000 rwxp 0004e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001004f000-0000000010050000 r-xp 0004f000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010050000-000000001006a000 rwxp 00050000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001006a000-000000001006d000 r-xp 0006a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001006d000-000000001007d000 rwxp 0006d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001007d000-000000001007e000 r-xp 0007d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001007e000-00000000100a0000 rwxp 0007e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 00000000100a0000-00000000100a1000 r-xp 000a0000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 00000000100a1000-00000000100bc000 rwxp 000a1000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 00000000100bc000-00000000100c0000 r-xp 000bc000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 00000000100c0000-000000001013a000 rwxp 000c0000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001013a000-000000001013b000 r-xp 0013a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001013b000-000000001016d000 rwxp 0013b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001016d000-000000001016e000 r-xp 0016d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001016e000-000000001017c000 rwxp 0016e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001017c000-000000001017d000 r-xp 0017c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001017d000-000000001017e000 rwxp 0017d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 000000001017e000-0000000010181000 r-xp 0017e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010181000-0000000010186000 rwxp 00181000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010186000-0000000010188000 r-xp 00186000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 0000000010188000-00000000101f0000 rwxp 00188000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> 00000000101f0000-00000000101f7000 rwxp 00000000 00:00 0
> 00000000101f7000-0000000010219000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000001000 ---p 00000000 00:00 0
> 0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/ppc64abi32-linux-user/qemu-ppc64abi32 /home/voipio/linaro/qemu-smoke/powerpc/busybox cat /proc/self/maps
> 10000000-1016d000 r-xp 00000000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> 1017d000-1017e000 rw-p 0016d000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> 1017e000-101a5000 rw-p 00000000 00:00 0
> 40000000-40001000 ---p 00000000 00:00 0
> 40001000-40801000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/sh4-linux-user/qemu-sh4 /home/voipio/linaro/qemu-smoke/sh4/busybox cat /proc/self/maps
> 00400000-00548000 r-xp 00000000 fe:00 8784878 /home/voipio/linaro/qemu-smoke/sh4/busybox
> 00557000-00559000 rw-p 00147000 fe:00 8784878 /home/voipio/linaro/qemu-smoke/sh4/busybox
> 00559000-0057f000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/sh4eb-linux-user/qemu-sh4eb /home/voipio/linaro/qemu-smoke/sh4eb/busybox cat /proc/self/maps
> 00400000-004ab000 r-xp 00000000 fe:00 8784903 /home/voipio/linaro/qemu-smoke/sh4eb/busybox
> 004ba000-004bb000 rw-p 000aa000 fe:00 8784903 /home/voipio/linaro/qemu-smoke/sh4eb/busybox
> 004bb000-004c1000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/s390x-linux-user/qemu-s390x /home/voipio/linaro/qemu-smoke/s390x/busybox cat /proc/self/maps
> 0000000080000000-0000000080233000 r-xp 00000000 fe:00 8784870 /home/voipio/linaro/qemu-smoke/s390x/busybox
> 0000000080233000-0000000080235000 rw-p 00232000 fe:00 8784870 /home/voipio/linaro/qemu-smoke/s390x/busybox
> 0000000080235000-000000008025e000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000001000 ---p 00000000 00:00 0
> 0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/sparc64-linux-user/qemu-sparc64 /home/voipio/linaro/qemu-smoke/sparc64/busybox cat /proc/self/maps
> 0000000000100000-0000000000266000 r-xp 00000000 fe:00 8784872 /home/voipio/linaro/qemu-smoke/sparc64/busybox
> 0000000000364000-0000000000366000 rw-p 00164000 fe:00 8784872 /home/voipio/linaro/qemu-smoke/sparc64/busybox
> 0000000000366000-0000000000390000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000002000 ---p 00000000 00:00 0
> 0000004000002000-0000004000802000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/sparc32plus-linux-user/qemu-sparc32plus /home/voipio/linaro/qemu-smoke/sparc/busybox cat /proc/self/maps
> 00010000-0017a000 r-xp 00000000 fe:00 8784864 /home/voipio/linaro/qemu-smoke/sparc/busybox
> 00188000-00189000 rw-p 00168000 fe:00 8784864 /home/voipio/linaro/qemu-smoke/sparc/busybox
> 00189000-001b2000 rw-p 00000000 00:00 0
> 40000000-40002000 ---p 00000000 00:00 0
> 40002000-40802000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/i386-linux-user/qemu-i386 /home/voipio/linaro/qemu-smoke/i386/busybox cat /proc/self/maps
> 08048000-0817d000 r-xp 00000000 fe:00 8784913 /home/voipio/linaro/qemu-smoke/i386/busybox
> 0817d000-0817f000 rw-p 00134000 fe:00 8784913 /home/voipio/linaro/qemu-smoke/i386/busybox
> 0817f000-081a5000 rw-p 00000000 00:00 0
> f67fd000-f67ff000 rw-p 00000000 00:00 0
> f67ff000-f6800000 ---p 00000000 00:00 0
> f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> + /home/voipio/linaro/qemu/obj/x86_64-linux-user/qemu-x86_64 /home/voipio/linaro/qemu-smoke/amd64/busybox cat /proc/self/maps
> 0000000000400000-0000000000572000 r-xp 00000000 fe:00 8787320 /home/voipio/linaro/qemu-smoke/amd64/busybox
> 0000000000772000-0000000000774000 rw-p 00172000 fe:00 8787320 /home/voipio/linaro/qemu-smoke/amd64/busybox
> 0000000000774000-000000000079d000 rw-p 00000000 00:00 0
> 0000004000000000-0000004000001000 ---p 00000000 00:00 0
> 0000004000001000-0000004000803000 rw-p 00000000 00:00 0 [stack]
>
>
>
>> Signed-off-by: Mikhail Ilyin <m.ilin@samsung.com>
>> ---
>> include/exec/cpu-all.h | 2 ++
>> linux-user/syscall.c | 25 ++++++++++---------------
>> 2 files changed, 12 insertions(+), 15 deletions(-)
>>
>> diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
>> index f91581f..f9d132f 100644
>> --- a/include/exec/cpu-all.h
>> +++ b/include/exec/cpu-all.h
>> @@ -198,6 +198,8 @@ extern unsigned long reserved_va;
>> #define RESERVED_VA 0ul
>> #endif
>>
>> +#define GUEST_ADDR_MAX (RESERVED_VA ? RESERVED_VA : \
>> + (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
>> #endif
>>
>> /* page related stuff */
>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
>> index a50229d..189a8c0 100644
>> --- a/linux-user/syscall.c
>> +++ b/linux-user/syscall.c
>> @@ -5092,10 +5092,8 @@ static int open_self_cmdline(void *cpu_env, int fd)
>>
>> static int open_self_maps(void *cpu_env, int fd)
>> {
>> -#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
>> CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
>> TaskState *ts = cpu->opaque;
>> -#endif
>> FILE *fp;
>> char *line = NULL;
>> size_t len = 0;
>> @@ -5118,13 +5116,18 @@ static int open_self_maps(void *cpu_env, int fd)
>> if ((fields < 10) || (fields > 11)) {
>> continue;
>> }
>> - if (!strncmp(path, "[stack]", 7)) {
>> - continue;
>> - }
>> - if (h2g_valid(min) && h2g_valid(max)) {
>> + if (h2g_valid(min)) {
>> + int flags = page_get_flags(h2g(min));
>> + max = h2g_valid(max - 1) ? max : (uint64_t)g2h(GUEST_ADDR_MAX);
>> + if (page_check_range(h2g(min), max - min, flags) == -1) {
>> + continue;
>> + }
>> + if (h2g(min) == ts->info->stack_limit) {
>> + pstrcpy(path, sizeof(path), " [stack]");
>> + }
>> 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,
>> + h2g(min), h2g(max - 1) + 1, flag_r, flag_w,
>> flag_x, flag_p, offset, dev_maj, dev_min, inode,
>> path[0] ? " " : "", path);
>> }
>> @@ -5133,14 +5136,6 @@ static int open_self_maps(void *cpu_env, int fd)
>> free(line);
>> fclose(fp);
>>
>> -#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
>> - dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n",
>> - (unsigned long long)ts->info->stack_limit,
>> - (unsigned long long)(ts->info->start_stack +
>> - (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
>> - (unsigned long long)0);
>> -#endif
>> -
>> return 0;
>> }
>>
>> --
>> 1.9.1
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user: /proc/self/maps content
2014-08-05 13:24 ` Mikhail Ilin
@ 2014-08-06 8:22 ` Riku Voipio
0 siblings, 0 replies; 5+ messages in thread
From: Riku Voipio @ 2014-08-06 8:22 UTC (permalink / raw)
To: Mikhail Ilin; +Cc: qemu-devel
On Tue, Aug 05, 2014 at 05:24:27PM +0400, Mikhail Ilin wrote:
> I've tested the sample for Aarch64 myself and found that the
> approach should also work fine.
>
> Translation layout:
>
> $ qemu-aarch64 -strace /tmp/busybox-static cat /proc/self/maps
>
> start end size prot
> 0000000000400000-00000000005ba000 00000000001ba000 r-x
> 00000000005c9000-00000000005d3000 000000000000a000 rw-
> 0000004000000000-0000004000001000 0000000000001000 ---
> 0000004000001000-0000004000801000 0000000000800000 rw-
>
> /proc/self/maps output:
>
> 00400000-005ba000 r-xp 00000000 08:01 28837016 /tmp/busybox-static
> 005ba000-005c9000 ---p 00000000 00:00 0
> 005c9000-005cc000 rw-p 001b9000 08:01 28837016 /tmp/busybox-static
> 005cc000-005f4000 rw-p 00000000 00:00 0
> 60000000-602eb000 r-xp 00000000 08:01 55578769
> /home/michail/my1/bin/qemu-aarch64
> 604eb000-604f6000 rw-p 002eb000 08:01 55578769
> /home/michail/my1/bin/qemu-aarch64
> 604f6000-6054a000 rw-p 00000000 00:00 0
> 6054a000-6254b000 rwxp 00000000 00:00 0
> 6254b000-62577000 rw-p 00000000 00:00 0
> 63396000-633da000 rw-p 00000000 00:00 0 [heap]
> 4000000000-4000001000 ---p 00000000 00:00 0
> 4000001000-4000801000 rw-p 00000000 00:00 0
> 7ff830cab000-7ff8348fb000 rw-p 00000000 00:00 0
> 7fffb26ed000-7fffb270e000 rw-p 00000000 00:00 0 [stack]
> 7fffb27bb000-7fffb27bd000 r-xp 00000000 00:00 0 [vdso]
> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
>
> And the reason why it doesn't work for Aarch64 is openat call which is
> used instead of open.
>
> $ qemu-aarch64 -strace /tmp/busybox-static cat /proc/self/maps
>
> 483 setgid(1000,0,47,45,0,274886296116) = 0
> 483 setuid(1000,0,47,45,0,274886296116) = 0
> 483 openat(AT_FDCWD,"/proc/self/maps",O_RDONLY) = 3
> 483 read(3,0x7febf0,4096) = 1071
>
> this call doesn't have additional preprocessing and called directly.
>
> case TARGET_NR_openat:
> if (!(p = lock_user_string(arg2)))
> goto efault;
> ret = get_errno(sys_openat(arg1,
> path(p),
> target_to_host_bitmask(arg3,
> fcntl_flags_tbl),
> arg4));
>
> I believe OpenRISC case looks the same.
Thanks for looking into it. I just sent a patch that adds preprocessing
to openat, and seems to clear the issue for both aarch64 and OpenRISC.
Riku
>
> On 05.08.2014 15:47, Riku Voipio wrote:
> >Hi,
> >
> >On Tue, Aug 05, 2014 at 03:10:07PM +0400, Mikhail Ilyin wrote:
> >>Build /proc/self/maps doing a match against guest memory translation table.
> >>Output only that map records which are valid for guest memory layout.
> >
> >This is clear improvement, for most archs. But seems aarch64, openrisc still
> >leak host maps. It's not a regression, same issue before the patch.
> >
> >+ /home/voipio/linaro/qemu/obj/alpha-linux-user/qemu-alpha /home/voipio/linaro/qemu-smoke/alpha/busybox cat /proc/self/maps
> >0000000120000000-00000001201cc000 r-xp 00000000 fe:00 8784862 /home/voipio/linaro/qemu-smoke/alpha/busybox
> >00000001201dc000-00000001201e0000 rw-p 001cc000 fe:00 8784862 /home/voipio/linaro/qemu-smoke/alpha/busybox
> >00000001201e0000-000000012020a000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000002000 ---p 00000000 00:00 0
> >0000004000002000-0000004000802000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/arm-linux-user/qemu-arm /home/voipio/linaro/qemu-smoke/armel/busybox cat /proc/self/maps
> >00008000-0014b000 r-xp 00000000 fe:00 8784905 /home/voipio/linaro/qemu-smoke/armel/busybox
> >00153000-00154000 rw-p 00143000 fe:00 8784905 /home/voipio/linaro/qemu-smoke/armel/busybox
> >00154000-0017b000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64 /home/voipio/linaro/qemu-smoke/arm64/busybox cat /proc/self/maps
> >00400000-00572000 r-xp 00000000 fe:00 8784917 /home/voipio/linaro/qemu-smoke/arm64/busybox
> >00572000-00581000 ---p 00000000 00:00 0
> >00581000-00584000 rw-p 00171000 fe:00 8784917 /home/voipio/linaro/qemu-smoke/arm64/busybox
> >00584000-005ac000 rw-p 00000000 00:00 0
> >4000000000-4000001000 ---p 00000000 00:00 0
> >4000001000-4000811000 rw-p 00000000 00:00 0
> >7f38e312b000-7f38e6d2b000 rw-p 00000000 00:00 0
> >7f38e6d2b000-7f38e6d86000 r-xp 00000000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> >7f38e6d86000-7f38e6f86000 ---p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> >7f38e6f86000-7f38e6f87000 rw-p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> >7f38e6f87000-7f38e7126000 r-xp 00000000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7f38e7126000-7f38e7326000 ---p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7f38e7326000-7f38e732a000 r--p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7f38e732a000-7f38e732c000 rw-p 001a3000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7f38e732c000-7f38e7330000 rw-p 00000000 00:00 0
> >7f38e7330000-7f38e7348000 r-xp 00000000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7f38e7348000-7f38e7547000 ---p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7f38e7547000-7f38e7548000 r--p 00017000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7f38e7548000-7f38e7549000 rw-p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7f38e7549000-7f38e754d000 rw-p 00000000 00:00 0
> >7f38e754d000-7f38e7563000 r-xp 00000000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> >7f38e7563000-7f38e7762000 ---p 00016000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> >7f38e7762000-7f38e7763000 rw-p 00015000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> >7f38e7763000-7f38e7863000 r-xp 00000000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7f38e7863000-7f38e7a62000 ---p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7f38e7a62000-7f38e7a63000 r--p 000ff000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7f38e7a63000-7f38e7a64000 rw-p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7f38e7a64000-7f38e7b50000 r-xp 00000000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7f38e7b50000-7f38e7d50000 ---p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7f38e7d50000-7f38e7d58000 r--p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7f38e7d58000-7f38e7d5a000 rw-p 000f4000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7f38e7d5a000-7f38e7d6f000 rw-p 00000000 00:00 0
> >7f38e7d6f000-7f38e7d76000 r-xp 00000000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7f38e7d76000-7f38e7f75000 ---p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7f38e7f75000-7f38e7f76000 r--p 00006000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7f38e7f76000-7f38e7f77000 rw-p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7f38e7f77000-7f38e7f8e000 r-xp 00000000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7f38e7f8e000-7f38e818d000 ---p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7f38e818d000-7f38e818e000 r--p 00016000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7f38e818e000-7f38e818f000 rw-p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7f38e818f000-7f38e8295000 r-xp 00000000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7f38e8295000-7f38e8494000 ---p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7f38e8494000-7f38e8495000 r--p 00105000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7f38e8495000-7f38e8496000 rw-p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7f38e8496000-7f38e8497000 rw-p 00000000 00:00 0
> >7f38e8497000-7f38e8498000 r-xp 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7f38e8498000-7f38e8697000 ---p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7f38e8697000-7f38e8698000 r--p 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7f38e8698000-7f38e8699000 rw-p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7f38e8699000-7f38e86b9000 r-xp 00000000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> >7f38e885a000-7f38e88a1000 rw-p 00000000 00:00 0
> >7f38e88a7000-7f38e88b9000 rw-p 00000000 00:00 0
> >7f38e88b9000-7f38e88ba000 r--p 00020000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> >7f38e88ba000-7f38e88bb000 rw-p 00021000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> >7f38e88bb000-7f38e88bc000 rw-p 00000000 00:00 0
> >7f38e88bc000-7f38e8a40000 r-xp 00000000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
> >7f38e8c3f000-7f38e8c7a000 r--p 00183000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
> >7f38e8c7a000-7f38e8c81000 rw-p 001be000 fe:00 8791249 /home/voipio/linaro/qemu/obj/aarch64-linux-user/qemu-aarch64
> >7f38e8c81000-7f38e8cd6000 rw-p 00000000 00:00 0
> >7f38e8cd6000-7f38eacd7000 rwxp 00000000 00:00 0
> >7f38eacd7000-7f38eacea000 rw-p 00000000 00:00 0
> >7f38ec1c1000-7f38ec203000 rw-p 00000000 00:00 0 [heap]
> >7fff89d8a000-7fff89dab000 rw-p 00000000 00:00 0 [stack]
> >7fff89db5000-7fff89db7000 r-xp 00000000 00:00 0 [vdso]
> >ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
> >+ /home/voipio/linaro/qemu/obj/armeb-linux-user/qemu-armeb /home/voipio/linaro/qemu-smoke/armeb/busybox cat /proc/self/maps
> >00008000-000be000 r-xp 00000000 fe:00 8784894 /home/voipio/linaro/qemu-smoke/armeb/busybox
> >000c5000-000c6000 rw-p 000b5000 fe:00 8784894 /home/voipio/linaro/qemu-smoke/armeb/busybox
> >000c6000-000cc000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/cris-linux-user/qemu-cris /home/voipio/linaro/qemu-smoke/cris/busyboxv32 cat /proc/self/maps
> >00080000-00230000 r-xp 00000000 fe:00 8784890 /home/voipio/linaro/qemu-smoke/cris/busyboxv32
> >00230000-00234000 rw-p 001ae000 fe:00 8784890 /home/voipio/linaro/qemu-smoke/cris/busyboxv32
> >00234000-0025e000 rw-p 00000000 00:00 0
> >f67fe000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/m68k-linux-user/qemu-m68k /home/voipio/linaro/qemu-smoke/m68k/busybox cat /proc/self/maps
> >80000000-80126000 r-xp 00000000 fe:00 8784884 /home/voipio/linaro/qemu-smoke/m68k/busybox
> >80126000-80128000 rw-p 00124000 fe:00 8784884 /home/voipio/linaro/qemu-smoke/m68k/busybox
> >80128000-80150000 rw-p 00000000 00:00 0
> >f67fe000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/microblazeel-linux-user/qemu-microblazeel /home/voipio/linaro/qemu-smoke/mblzel/busybox cat /proc/self/maps
> >10000000-101dc000 r-xp 00000000 fe:00 8784880 /home/voipio/linaro/qemu-smoke/mblzel/busybox
> >101dc000-101e0000 rw-p 001dc000 fe:00 8784880 /home/voipio/linaro/qemu-smoke/mblzel/busybox
> >101e0000-10206000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/microblaze-linux-user/qemu-microblaze /home/voipio/linaro/qemu-smoke/mblz/busybox cat /proc/self/maps
> >10000000-101dd000 r-xp 00000000 fe:00 8787324 /home/voipio/linaro/qemu-smoke/mblz/busybox
> >101dd000-101e1000 rw-p 001dd000 fe:00 8787324 /home/voipio/linaro/qemu-smoke/mblz/busybox
> >101e1000-10207000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/mipsel-linux-user/qemu-mipsel /home/voipio/linaro/qemu-smoke/mipsel/busybox cat /proc/self/maps
> >00400000-005a3000 r-xp 00000000 fe:00 8784898 /home/voipio/linaro/qemu-smoke/mipsel/busybox
> >005b3000-005bc000 rw-p 001a3000 fe:00 8784898 /home/voipio/linaro/qemu-smoke/mipsel/busybox
> >005bc000-005e2000 rw-p 00000000 00:00 0
> >767ff000-76800000 ---p 00000000 00:00 0
> >76800000-77000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/mips-linux-user/qemu-mips /home/voipio/linaro/qemu-smoke/mips/busybox cat /proc/self/maps
> >00400000-005a2000 r-xp 00000000 fe:00 8784907 /home/voipio/linaro/qemu-smoke/mips/busybox
> >005b2000-005bb000 rw-p 001a2000 fe:00 8784907 /home/voipio/linaro/qemu-smoke/mips/busybox
> >005bb000-005e1000 rw-p 00000000 00:00 0
> >767ff000-76800000 ---p 00000000 00:00 0
> >76800000-77000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/mips64el-linux-user/qemu-mips64el /home/voipio/linaro/qemu-smoke/mips64el/busybox cat /proc/self/maps
> >0000000120000000-00000001200eb000 r-xp 00000000 fe:00 8784909 /home/voipio/linaro/qemu-smoke/mips64el/busybox
> >00000001200fb000-0000000120100000 rw-p 000eb000 fe:00 8784909 /home/voipio/linaro/qemu-smoke/mips64el/busybox
> >0000000120100000-0000000120107000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000001000 ---p 00000000 00:00 0
> >0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/mips64-linux-user/qemu-mips64 /home/voipio/linaro/qemu-smoke/mips64/busybox cat /proc/self/maps
> >0000000120000000-00000001200eb000 r-xp 00000000 fe:00 8784896 /home/voipio/linaro/qemu-smoke/mips64/busybox
> >00000001200fb000-0000000120100000 rw-p 000eb000 fe:00 8784896 /home/voipio/linaro/qemu-smoke/mips64/busybox
> >0000000120100000-0000000120107000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000001000 ---p 00000000 00:00 0
> >0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32 /home/voipio/linaro/qemu-smoke/or32/busybox cat /proc/self/maps
> >7fe12b32f000-7fe12b330000 ---p 00000000 00:00 0
> >7fe12b330000-7fe12b47e000 r-xp 00002000 fe:00 8784874 /home/voipio/linaro/qemu-smoke/or32/busybox
> >7fe12b47e000-7fe12b484000 rw-p 00000000 00:00 0
> >7fe12b484000-7fe221b2e000 ---p 00000000 00:00 0
> >7fe221b2e000-7fe221b30000 ---p 00000000 00:00 0
> >7fe221b30000-7fe222330000 rw-p 00000000 00:00 0
> >7fe222330000-7fe222331000 ---p 00000000 00:00 0
> >7fe222331000-7fe225731000 rw-p 00000000 00:00 0
> >7fe225731000-7fe22578c000 r-xp 00000000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> >7fe22578c000-7fe22598c000 ---p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> >7fe22598c000-7fe22598d000 rw-p 0005b000 fe:00 5242918 /lib/x86_64-linux-gnu/libpcre.so.3.13.1
> >7fe22598d000-7fe225b2c000 r-xp 00000000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7fe225b2c000-7fe225d2c000 ---p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7fe225d2c000-7fe225d30000 r--p 0019f000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7fe225d30000-7fe225d32000 rw-p 001a3000 fe:00 5248993 /lib/x86_64-linux-gnu/libc-2.19.so
> >7fe225d32000-7fe225d36000 rw-p 00000000 00:00 0
> >7fe225d36000-7fe225d4e000 r-xp 00000000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7fe225d4e000-7fe225f4d000 ---p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7fe225f4d000-7fe225f4e000 r--p 00017000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7fe225f4e000-7fe225f4f000 rw-p 00018000 fe:00 5247493 /lib/x86_64-linux-gnu/libpthread-2.19.so
> >7fe225f4f000-7fe225f53000 rw-p 00000000 00:00 0
> >7fe225f53000-7fe225f69000 r-xp 00000000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> >7fe225f69000-7fe226168000 ---p 00016000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> >7fe226168000-7fe226169000 rw-p 00015000 fe:00 5242894 /lib/x86_64-linux-gnu/libgcc_s.so.1
> >7fe226169000-7fe226269000 r-xp 00000000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7fe226269000-7fe226468000 ---p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7fe226468000-7fe226469000 r--p 000ff000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7fe226469000-7fe22646a000 rw-p 00100000 fe:00 5248997 /lib/x86_64-linux-gnu/libm-2.19.so
> >7fe22646a000-7fe226556000 r-xp 00000000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7fe226556000-7fe226756000 ---p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7fe226756000-7fe22675e000 r--p 000ec000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7fe22675e000-7fe226760000 rw-p 000f4000 fe:00 5111819 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
> >7fe226760000-7fe226775000 rw-p 00000000 00:00 0
> >7fe226775000-7fe22677c000 r-xp 00000000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7fe22677c000-7fe22697b000 ---p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7fe22697b000-7fe22697c000 r--p 00006000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7fe22697c000-7fe22697d000 rw-p 00007000 fe:00 5249008 /lib/x86_64-linux-gnu/librt-2.19.so
> >7fe22697d000-7fe226994000 r-xp 00000000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7fe226994000-7fe226b93000 ---p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7fe226b93000-7fe226b94000 r--p 00016000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7fe226b94000-7fe226b95000 rw-p 00017000 fe:00 5242967 /lib/x86_64-linux-gnu/libz.so.1.2.8
> >7fe226b95000-7fe226c9b000 r-xp 00000000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7fe226c9b000-7fe226e9a000 ---p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7fe226e9a000-7fe226e9b000 r--p 00105000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7fe226e9b000-7fe226e9c000 rw-p 00106000 fe:00 5247512 /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0
> >7fe226e9c000-7fe226e9d000 rw-p 00000000 00:00 0
> >7fe226e9d000-7fe226e9e000 r-xp 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7fe226e9e000-7fe22709d000 ---p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7fe22709d000-7fe22709e000 r--p 00000000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7fe22709e000-7fe22709f000 rw-p 00001000 fe:00 5119090 /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.4000.0
> >7fe22709f000-7fe2270bf000 r-xp 00000000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> >7fe227272000-7fe2272a7000 rw-p 00000000 00:00 0
> >7fe2272ad000-7fe2272bf000 rw-p 00000000 00:00 0
> >7fe2272bf000-7fe2272c0000 r--p 00020000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> >7fe2272c0000-7fe2272c1000 rw-p 00021000 fe:00 5248990 /lib/x86_64-linux-gnu/ld-2.19.so
> >7fe2272c1000-7fe2272c2000 rw-p 00000000 00:00 0
> >7fe2272c2000-7fe227397000 r-xp 00000000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
> >7fe227596000-7fe2275be000 r--p 000d4000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
> >7fe2275be000-7fe2275c5000 rw-p 000fc000 fe:00 8782511 /home/voipio/linaro/qemu/obj/or32-linux-user/qemu-or32
> >7fe2275c5000-7fe227619000 rw-p 00000000 00:00 0
> >7fe227619000-7fe22961a000 rwxp 00000000 00:00 0
> >7fe22961a000-7fe229625000 rw-p 00000000 00:00 0
> >7fe2297dd000-7fe2297fe000 rw-p 00000000 00:00 0 [heap]
> >7fff48b01000-7fff48b22000 rw-p 00000000 00:00 0 [stack]
> >7fff48bfe000-7fff48c00000 r-xp 00000000 00:00 0 [vdso]
> >ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
> >+ /home/voipio/linaro/qemu/obj/ppc-linux-user/qemu-ppc /home/voipio/linaro/qemu-smoke/powerpc/busybox cat /proc/self/maps
> >10000000-1016d000 r-xp 00000000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> >1017d000-1017e000 rw-p 0016d000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> >1017e000-101a5000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/ppc64-linux-user/qemu-ppc64 /home/voipio/linaro/qemu-smoke/ppc64/busybox cat /proc/self/maps
> >0000000010000000-0000000010004000 r-xp 00000000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010004000-0000000010013000 rwxp 00004000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010013000-0000000010015000 r-xp 00013000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010015000-0000000010016000 rwxp 00015000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010016000-0000000010018000 r-xp 00016000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010018000-0000000010019000 rwxp 00018000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010019000-000000001001a000 r-xp 00019000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001001a000-000000001001b000 rwxp 0001a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001001b000-000000001001c000 r-xp 0001b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001001c000-000000001002b000 rwxp 0001c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001002b000-000000001002c000 r-xp 0002b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001002c000-0000000010030000 rwxp 0002c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010030000-0000000010033000 r-xp 00030000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010033000-0000000010048000 rwxp 00033000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010048000-0000000010049000 r-xp 00048000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010049000-000000001004a000 rwxp 00049000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001004a000-000000001004b000 r-xp 0004a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001004b000-000000001004d000 rwxp 0004b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001004d000-000000001004e000 r-xp 0004d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001004e000-000000001004f000 rwxp 0004e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001004f000-0000000010050000 r-xp 0004f000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010050000-000000001006a000 rwxp 00050000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001006a000-000000001006d000 r-xp 0006a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001006d000-000000001007d000 rwxp 0006d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001007d000-000000001007e000 r-xp 0007d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001007e000-00000000100a0000 rwxp 0007e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >00000000100a0000-00000000100a1000 r-xp 000a0000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >00000000100a1000-00000000100bc000 rwxp 000a1000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >00000000100bc000-00000000100c0000 r-xp 000bc000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >00000000100c0000-000000001013a000 rwxp 000c0000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001013a000-000000001013b000 r-xp 0013a000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001013b000-000000001016d000 rwxp 0013b000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001016d000-000000001016e000 r-xp 0016d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001016e000-000000001017c000 rwxp 0016e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001017c000-000000001017d000 r-xp 0017c000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001017d000-000000001017e000 rwxp 0017d000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >000000001017e000-0000000010181000 r-xp 0017e000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010181000-0000000010186000 rwxp 00181000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010186000-0000000010188000 r-xp 00186000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >0000000010188000-00000000101f0000 rwxp 00188000 fe:00 8784886 /home/voipio/linaro/qemu-smoke/ppc64/busybox
> >00000000101f0000-00000000101f7000 rwxp 00000000 00:00 0
> >00000000101f7000-0000000010219000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000001000 ---p 00000000 00:00 0
> >0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/ppc64abi32-linux-user/qemu-ppc64abi32 /home/voipio/linaro/qemu-smoke/powerpc/busybox cat /proc/self/maps
> >10000000-1016d000 r-xp 00000000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> >1017d000-1017e000 rw-p 0016d000 fe:00 8787322 /home/voipio/linaro/qemu-smoke/powerpc/busybox
> >1017e000-101a5000 rw-p 00000000 00:00 0
> >40000000-40001000 ---p 00000000 00:00 0
> >40001000-40801000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/sh4-linux-user/qemu-sh4 /home/voipio/linaro/qemu-smoke/sh4/busybox cat /proc/self/maps
> >00400000-00548000 r-xp 00000000 fe:00 8784878 /home/voipio/linaro/qemu-smoke/sh4/busybox
> >00557000-00559000 rw-p 00147000 fe:00 8784878 /home/voipio/linaro/qemu-smoke/sh4/busybox
> >00559000-0057f000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/sh4eb-linux-user/qemu-sh4eb /home/voipio/linaro/qemu-smoke/sh4eb/busybox cat /proc/self/maps
> >00400000-004ab000 r-xp 00000000 fe:00 8784903 /home/voipio/linaro/qemu-smoke/sh4eb/busybox
> >004ba000-004bb000 rw-p 000aa000 fe:00 8784903 /home/voipio/linaro/qemu-smoke/sh4eb/busybox
> >004bb000-004c1000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/s390x-linux-user/qemu-s390x /home/voipio/linaro/qemu-smoke/s390x/busybox cat /proc/self/maps
> >0000000080000000-0000000080233000 r-xp 00000000 fe:00 8784870 /home/voipio/linaro/qemu-smoke/s390x/busybox
> >0000000080233000-0000000080235000 rw-p 00232000 fe:00 8784870 /home/voipio/linaro/qemu-smoke/s390x/busybox
> >0000000080235000-000000008025e000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000001000 ---p 00000000 00:00 0
> >0000004000001000-0000004000801000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/sparc64-linux-user/qemu-sparc64 /home/voipio/linaro/qemu-smoke/sparc64/busybox cat /proc/self/maps
> >0000000000100000-0000000000266000 r-xp 00000000 fe:00 8784872 /home/voipio/linaro/qemu-smoke/sparc64/busybox
> >0000000000364000-0000000000366000 rw-p 00164000 fe:00 8784872 /home/voipio/linaro/qemu-smoke/sparc64/busybox
> >0000000000366000-0000000000390000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000002000 ---p 00000000 00:00 0
> >0000004000002000-0000004000802000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/sparc32plus-linux-user/qemu-sparc32plus /home/voipio/linaro/qemu-smoke/sparc/busybox cat /proc/self/maps
> >00010000-0017a000 r-xp 00000000 fe:00 8784864 /home/voipio/linaro/qemu-smoke/sparc/busybox
> >00188000-00189000 rw-p 00168000 fe:00 8784864 /home/voipio/linaro/qemu-smoke/sparc/busybox
> >00189000-001b2000 rw-p 00000000 00:00 0
> >40000000-40002000 ---p 00000000 00:00 0
> >40002000-40802000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/i386-linux-user/qemu-i386 /home/voipio/linaro/qemu-smoke/i386/busybox cat /proc/self/maps
> >08048000-0817d000 r-xp 00000000 fe:00 8784913 /home/voipio/linaro/qemu-smoke/i386/busybox
> >0817d000-0817f000 rw-p 00134000 fe:00 8784913 /home/voipio/linaro/qemu-smoke/i386/busybox
> >0817f000-081a5000 rw-p 00000000 00:00 0
> >f67fd000-f67ff000 rw-p 00000000 00:00 0
> >f67ff000-f6800000 ---p 00000000 00:00 0
> >f6800000-f7000000 rw-p 00000000 00:00 0 [stack]
> >+ /home/voipio/linaro/qemu/obj/x86_64-linux-user/qemu-x86_64 /home/voipio/linaro/qemu-smoke/amd64/busybox cat /proc/self/maps
> >0000000000400000-0000000000572000 r-xp 00000000 fe:00 8787320 /home/voipio/linaro/qemu-smoke/amd64/busybox
> >0000000000772000-0000000000774000 rw-p 00172000 fe:00 8787320 /home/voipio/linaro/qemu-smoke/amd64/busybox
> >0000000000774000-000000000079d000 rw-p 00000000 00:00 0
> >0000004000000000-0000004000001000 ---p 00000000 00:00 0
> >0000004000001000-0000004000803000 rw-p 00000000 00:00 0 [stack]
> >
> >
> >
> >>Signed-off-by: Mikhail Ilyin <m.ilin@samsung.com>
> >>---
> >> include/exec/cpu-all.h | 2 ++
> >> linux-user/syscall.c | 25 ++++++++++---------------
> >> 2 files changed, 12 insertions(+), 15 deletions(-)
> >>
> >>diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
> >>index f91581f..f9d132f 100644
> >>--- a/include/exec/cpu-all.h
> >>+++ b/include/exec/cpu-all.h
> >>@@ -198,6 +198,8 @@ extern unsigned long reserved_va;
> >> #define RESERVED_VA 0ul
> >> #endif
> >>
> >>+#define GUEST_ADDR_MAX (RESERVED_VA ? RESERVED_VA : \
> >>+ (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
> >> #endif
> >>
> >> /* page related stuff */
> >>diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> >>index a50229d..189a8c0 100644
> >>--- a/linux-user/syscall.c
> >>+++ b/linux-user/syscall.c
> >>@@ -5092,10 +5092,8 @@ static int open_self_cmdline(void *cpu_env, int fd)
> >>
> >> static int open_self_maps(void *cpu_env, int fd)
> >> {
> >>-#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
> >> CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
> >> TaskState *ts = cpu->opaque;
> >>-#endif
> >> FILE *fp;
> >> char *line = NULL;
> >> size_t len = 0;
> >>@@ -5118,13 +5116,18 @@ static int open_self_maps(void *cpu_env, int fd)
> >> if ((fields < 10) || (fields > 11)) {
> >> continue;
> >> }
> >>- if (!strncmp(path, "[stack]", 7)) {
> >>- continue;
> >>- }
> >>- if (h2g_valid(min) && h2g_valid(max)) {
> >>+ if (h2g_valid(min)) {
> >>+ int flags = page_get_flags(h2g(min));
> >>+ max = h2g_valid(max - 1) ? max : (uint64_t)g2h(GUEST_ADDR_MAX);
> >>+ if (page_check_range(h2g(min), max - min, flags) == -1) {
> >>+ continue;
> >>+ }
> >>+ if (h2g(min) == ts->info->stack_limit) {
> >>+ pstrcpy(path, sizeof(path), " [stack]");
> >>+ }
> >> 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,
> >>+ h2g(min), h2g(max - 1) + 1, flag_r, flag_w,
> >> flag_x, flag_p, offset, dev_maj, dev_min, inode,
> >> path[0] ? " " : "", path);
> >> }
> >>@@ -5133,14 +5136,6 @@ static int open_self_maps(void *cpu_env, int fd)
> >> free(line);
> >> fclose(fp);
> >>
> >>-#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
> >>- dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n",
> >>- (unsigned long long)ts->info->stack_limit,
> >>- (unsigned long long)(ts->info->start_stack +
> >>- (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
> >>- (unsigned long long)0);
> >>-#endif
> >>-
> >> return 0;
> >> }
> >>
> >>--
> >>1.9.1
> >>
> >
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] linux-user: /proc/self/maps content
@ 2014-08-05 13:33 Mikhail Ilyin
0 siblings, 0 replies; 5+ messages in thread
From: Mikhail Ilyin @ 2014-08-05 13:33 UTC (permalink / raw)
To: qemu-devel; +Cc: m.ilin, riku.voipio
Build /proc/self/maps doing a match against guest memory translation table.
Output only that map records which are valid for guest memory layout.
Signed-off-by: Mikhail Ilyin <m.ilin@samsung.com>
---
The previous patch won't compile with 32 bits compiler because of wrong
casting type, replace uint64_t with uintptr_t.
max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX);
include/exec/cpu-all.h | 2 ++
linux-user/syscall.c | 25 ++++++++++---------------
2 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index f91581f..f9d132f 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -198,6 +198,8 @@ extern unsigned long reserved_va;
#define RESERVED_VA 0ul
#endif
+#define GUEST_ADDR_MAX (RESERVED_VA ? RESERVED_VA : \
+ (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
#endif
/* page related stuff */
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index a50229d..189a8c0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5092,10 +5092,8 @@ static int open_self_cmdline(void *cpu_env, int fd)
static int open_self_maps(void *cpu_env, int fd)
{
-#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
CPUState *cpu = ENV_GET_CPU((CPUArchState *)cpu_env);
TaskState *ts = cpu->opaque;
-#endif
FILE *fp;
char *line = NULL;
size_t len = 0;
@@ -5118,13 +5116,18 @@ static int open_self_maps(void *cpu_env, int fd)
if ((fields < 10) || (fields > 11)) {
continue;
}
- if (!strncmp(path, "[stack]", 7)) {
- continue;
- }
- if (h2g_valid(min) && h2g_valid(max)) {
+ if (h2g_valid(min)) {
+ int flags = page_get_flags(h2g(min));
+ max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX);
+ if (page_check_range(h2g(min), max - min, flags) == -1) {
+ continue;
+ }
+ if (h2g(min) == ts->info->stack_limit) {
+ pstrcpy(path, sizeof(path), " [stack]");
+ }
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,
+ h2g(min), h2g(max - 1) + 1, flag_r, flag_w,
flag_x, flag_p, offset, dev_maj, dev_min, inode,
path[0] ? " " : "", path);
}
@@ -5133,14 +5136,6 @@ static int open_self_maps(void *cpu_env, int fd)
free(line);
fclose(fp);
-#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
- dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0 [stack]\n",
- (unsigned long long)ts->info->stack_limit,
- (unsigned long long)(ts->info->start_stack +
- (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
- (unsigned long long)0);
-#endif
-
return 0;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-08-06 8:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-05 11:10 [Qemu-devel] [PATCH] linux-user: /proc/self/maps content Mikhail Ilyin
2014-08-05 11:47 ` Riku Voipio
2014-08-05 13:24 ` Mikhail Ilin
2014-08-06 8:22 ` Riku Voipio
-- strict thread matches above, loose matches on Subject: below --
2014-08-05 13:33 Mikhail Ilyin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).