Andreas Schwab <sch...@suse.de> writes:

> $ cat mmap.c
> #include <stdio.h>
> #include <sys/mman.h>
>
> int
> main (void)
> {
>   void *A;
>   size_t L = 0, U, Max = 0;
>   for (U = 1; ; U *= 2)
>     {
>       A = mmap (0, U, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, 
> -1, 0);
>       if (A == (void *) -1)
>       break;
>       else
>       munmap (A, U);
>     }
>   while (L + 1 < U)
>     {
>       size_t M = L + (U - L) / 2;
>       A = mmap (0, M, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, 
> -1, 0);
>       if (A == (void *) -1)
>       U = M;
>       else
>       {
>         Max = M;
>         munmap(A, M);
>         L = M;
>       }
>     }
>   printf ("%zx\n", Max);
> }
> $ cc -O2 -g -Wall -std=gnu11 -g     mmap.c   -o mmap
> $ ./mmap 
> 7f672e5ff000
> $ qemu-x86_64 ./mmap
> Killed

This is probably the same as bug: 
https://gitlab.com/qemu-project/qemu/-/issues/967

-- 
Alex Bennée

Reply via email to