From ec5d5f360206747543d17188511f223fec24ae92 Mon Sep 17 00:00:00 2001 From: Matt Mullins Date: Fri, 20 Sep 2013 19:57:32 -0700 Subject: [PATCH] Map all the memory, shrinking block size as necessary --- mmap_everything.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mmap_everything.c b/mmap_everything.c index 2d24390..2940a11 100644 --- a/mmap_everything.c +++ b/mmap_everything.c @@ -1,18 +1,23 @@ +#include #include #include #include #include -static const size_t size = 100 * (1 << 20); // 100MB - int main() { pid_t pid = getpid(); printf("My pid is: %d\n", pid); + size_t size = ((size_t)1 << (sizeof(size_t) * CHAR_BIT - 1)); + void *p; do { - p = mmap(0, size, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - } while (p != MAP_FAILED); + do { + p = mmap(0, size, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + } while (p != MAP_FAILED); + + size >>= 1; + } while (size); printf("Mapped at: %p\n", p); getchar(); -- 2.11.0