From: Jeremy Fitzhardinge Date: Wed, 8 Sep 2004 20:03:51 +0000 (+0000) Subject: Use MAP_NORESERVE for potentially large mappings. X-Git-Tag: svn/VALGRIND_3_0_0~1609 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8a1746826de7a83d2335d2fa3930eaf4f05a9ee7;p=thirdparty%2Fvalgrind.git Use MAP_NORESERVE for potentially large mappings. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2674 --- diff --git a/coregrind/ume.c b/coregrind/ume.c index 92bad15c4f..7f202a3b53 100644 --- a/coregrind/ume.c +++ b/coregrind/ume.c @@ -128,7 +128,7 @@ static int fillgap(char *segstart, char *segend, const char *perm, off_t off, if (segstart > extra->fillgap_start) { void* res = mmap(extra->fillgap_start, segstart - extra->fillgap_start, - PROT_NONE, MAP_FIXED|MAP_PRIVATE, + PROT_NONE, MAP_FIXED|MAP_PRIVATE|MAP_NORESERVE, extra->fillgap_padfile, 0); check_mmap(res, extra->fillgap_start, segstart - extra->fillgap_start); } @@ -169,7 +169,7 @@ void as_pad(void *start, void *end, int padfile) if (extra.fillgap_start < extra.fillgap_end) { void* res = mmap(extra.fillgap_start, extra.fillgap_end - extra.fillgap_start, - PROT_NONE, MAP_FIXED|MAP_PRIVATE, padfile, 0); + PROT_NONE, MAP_FIXED|MAP_PRIVATE|MAP_NORESERVE, padfile, 0); check_mmap(res, extra.fillgap_start, extra.fillgap_end - extra.fillgap_start); } diff --git a/coregrind/vg_main.c b/coregrind/vg_main.c index 8ef52cce47..dcafb15d7a 100644 --- a/coregrind/vg_main.c +++ b/coregrind/vg_main.c @@ -441,7 +441,7 @@ static void layout_remaining_space(Addr argc_addr, float ratio) // Ban redzone vres = mmap((void *)VG_(client_end), REDZONE_SIZE, PROT_NONE, - MAP_FIXED|MAP_ANON|MAP_PRIVATE, -1, 0); + MAP_FIXED|MAP_ANON|MAP_PRIVATE|MAP_NORESERVE, -1, 0); vg_assert((void*)-1 != vres); // Make client hole @@ -452,7 +452,7 @@ static void layout_remaining_space(Addr argc_addr, float ratio) // Initially all inaccessible, incrementally initialized as it is used if (shadow_size != 0) { vres = mmap((char *)VG_(shadow_base), shadow_size, PROT_NONE, - MAP_PRIVATE|MAP_ANON|MAP_FIXED, -1, 0); + MAP_PRIVATE|MAP_ANON|MAP_FIXED|MAP_NORESERVE, -1, 0); if ((void*)-1 == vres) { fprintf(stderr, "valgrind: Couldn't allocate address space for shadow memory\n"