1*67ff2186SRichard Henderson /* 2*67ff2186SRichard Henderson * Test very large vma allocations. 3*67ff2186SRichard Henderson * The qemu out-of-memory condition was within the mmap syscall itself. 4*67ff2186SRichard Henderson * If the syscall actually returns with MAP_FAILED, the test succeeded. 5*67ff2186SRichard Henderson */ 6*67ff2186SRichard Henderson #include <sys/mman.h> 7*67ff2186SRichard Henderson main()8*67ff2186SRichard Hendersonint main() 9*67ff2186SRichard Henderson { 10*67ff2186SRichard Henderson int n = sizeof(size_t) == 4 ? 32 : 45; 11*67ff2186SRichard Henderson 12*67ff2186SRichard Henderson for (int i = 28; i < n; i++) { 13*67ff2186SRichard Henderson size_t l = (size_t)1 << i; 14*67ff2186SRichard Henderson void *p = mmap(0, l, PROT_NONE, 15*67ff2186SRichard Henderson MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0); 16*67ff2186SRichard Henderson if (p == MAP_FAILED) { 17*67ff2186SRichard Henderson break; 18*67ff2186SRichard Henderson } 19*67ff2186SRichard Henderson munmap(p, l); 20*67ff2186SRichard Henderson } 21*67ff2186SRichard Henderson return 0; 22*67ff2186SRichard Henderson } 23