1. 17 Jan, 2013 1 commit
  2. 20 Dec, 2012 13 commits
  3. 19 Dec, 2012 7 commits
  4. 17 Dec, 2012 1 commit
  5. 12 Dec, 2012 2 commits
    • David Gibson's avatar
      migration: Fix madvise breakage if host and guest have different page sizes · 45e6cee4
      David Gibson authored
      madvise(DONTNEED) will throw away the contents of the whole page at the
      given address, even if the given length is less than the page size.  One
      can argue about whether that's the correct behaviour, but that's what it's
      done for a long time in Linux at least.
      
      That means that the madvise() in ram_load(), on a setup where
      TARGET_PAGE_SIZE is smaller than the host page size, can throw away data
      in guest pages adjacent to the one it's actually processing right now,
      leading to guest memory corruption on an incoming migration.
      
      This patch therefore, disables the madvise() if the host page size is
      larger than TARGET_PAGE_SIZE.  This means we don't get the benefits of that
      madvise() in this case, but a more complete fix is more difficult to
      accomplish.  This at least fixes the guest memory corruption.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Reported-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      45e6cee4
    • David Gibson's avatar
      Fix off-by-1 error in RAM migration code · 7ec81e56
      David Gibson authored
      The code for migrating (or savevm-ing) memory pages starts off by creating
      a dirty bitmap and filling it with 1s.  Except, actually, because bit
      addresses are 0-based it fills every bit except bit 0 with 1s and puts an
      extra 1 beyond the end of the bitmap, potentially corrupting unrelated
      memory.  Oops.  This patch fixes it.
      Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      7ec81e56
  6. 17 Oct, 2012 10 commits
  7. 21 Sep, 2012 1 commit
  8. 19 Sep, 2012 1 commit
  9. 14 Sep, 2012 1 commit
  10. 22 Aug, 2012 1 commit
  11. 11 Aug, 2012 1 commit
  12. 08 Aug, 2012 1 commit