Skip to content
  • Paolo Bonzini's avatar
    migration: initialize RAM to zero · 7dda5dc8
    Paolo Bonzini authored
    Using qemu_memalign only leaves the RAM zero by chance, because libc
    will usually use mmap to satisfy our huge requests.  But memory will
    not be zero when using MALLOC_PERTURB_ with a nonzero value.  In the
    case of incoming migration, this breaks a recently-introduced
    invariant (commit f1c72795, migration: do not sent zero pages in
    bulk stage, 2013-03-26).
    
    To fix this, use mmap ourselves to get a well-aligned, always zero
    block for the RAM.  Mmap-ed memory is easy to "trim" at the sides.
    
    This also removes the need to do something special on valgrind
    (see commit c2a8238a
    
    , Support running QEMU on Valgrind, 2011-10-31),
    thus effectively reverts that patch.
    
    Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-id: 1365522223-20153-1-git-send-email-pbonzini@redhat.com
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    7dda5dc8