"cannot set up guest memory" b/c no automatic clearing of Linux' cache
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Version: qemu-2.6.0-1
Kernel: 4.4.13-1-MANJARO
Full script (shouldn't matter though): https:/
Problem:
When host has been up and used for a while cache has been filled as much that guest can't be started without droping caches.
Expected behavior:
Qemu should be able to request as much Memory as it needs and cause Linux to drop cache pages if needed. A user shouldn't be required to have to come to this conclusion and having to drop caches to start Qemu with the required amount of memory.
My fix:
Following command (as root) required before qemu start:
# sync && echo 3 > /proc/sys/
Example:
$ sudo qemu.sh -m 10240 && echo success || echo failed
qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
failed
$ free
total used free shared buff/cache available
Mem: 16379476 9126884 3462688 148480 3789904 5123572
Swap: 0 0 0
$ sudo sh -c 'sync && echo 3 > /proc/sys/
$ free
total used free shared buff/cache available
Mem: 16379476 1694528 14106552 149772 578396 14256428
Swap: 0 0 0
$ sudo qemu.sh -m 10240 && echo success || echo failed
success
summary: |
- "cannot set up guest memory" and can't clear Linux' Cache + "cannot set up guest memory" b/c no automatic clearing of Linux' cache |
Hi Celmor, vm/overcommit_ memory to 1?
That shouldn't happen! QEMU's allocation of memory is pretty normal, so really the question is for the kernel guys.
Having chatted to a collague, two questions:
a) Does it still happen if you set /proc/sys/
b) What filesystem are you using (some have different behaviour when dealing with the caches).