Il 04/07/2014 16:49, Alexei Fedotov ha scritto:
Hi engineers,
Could anyone direct me where memory allocation [1] for a new virtual
machine takes place in the code? I want to understand why the memory
is initialized with zeroes when I call malloc in a virtual machine.
Nowhere in KVM.
Memory allocation happens in userspace, which usually (but not
necessarily) means QEMU. Quoting from the wiki page you mentioned:
The qemu/kvm process runs mostly like a normal Linux program. It
allocates its memory with normal malloc() or mmap() calls. If a guest is
going to have 1GB of physical memory, qemu/kvm will effectively do a
malloc(1<<30), allocating 1GB of host virtual space. However, just like
a normal program doing a malloc(), there is no actual physical memory
allocated at the time of the malloc(). It will not be actually allocated
until the first time it is touched.
Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html