This is an automated cleanup. This bug report has been moved to QEMU's new bug tracker on gitlab.com and thus gets marked as 'expired' now. Please continue with the discussion here:
https://gitlab.com/qemu-project/qemu/-/issues/290 ** Changed in: qemu Status: Confirmed => Expired ** Bug watch added: gitlab.com/qemu-project/qemu/-/issues #290 https://gitlab.com/qemu-project/qemu/-/issues/290 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1898011 Title: mmap MAP_NORESERVE of 2^42 bytes consumes 16Gb of actual RAM Status in QEMU: Expired Bug description: Run this program: #include <sys/mman.h> #include <stdio.h> int main() { for (int i = 30; i <= 44; i++) { fprintf(stderr, "trying 2**%d\n", i); mmap((void*)0x600000000000,1ULL << i, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED|MAP_NORESERVE,-1,0); } } (tried qemu-x86_64 and qemu-aarch64, 4.2.1 and trunk/5.1.50) On each iteration qemu will consume 2x more physical RAM, e.g. when mapping 2^42 it will have RSS of 16Gb. On normal linux it works w/o consuming much RAM, due to MAP_NORESERVE. Also: qemu -strace prints 0 instead of the correct size starting from size=2^32 and prints -2147483648 for size=2^31. mmap(0x0000600000000000,1073741824,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED|MAP_NORESERVE,-1,0) = 0x0000600000000000 mmap(0x0000600000000000,-2147483648,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED|MAP_NORESERVE,-1,0) = 0x0000600000000000 mmap(0x0000600000000000,0,PROT_NONE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED|MAP_NORESERVE,-1,0) = 0x0000600000000000 To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1898011/+subscriptions