Package: qemu-kvm
Version: 0.12.0+dfsg-5
Severity: important
Tags: patch squeeze upstream pending

When perfoming migration on a 32bit userspace,
qemu-kvm aborts after glibc detects memory corruption.
This is 100% reproducible on a 32bit host userspace
(with 32 or 64bit kernel).

It has been this way since long time already.

The problem has been addressed upstream, twice,
and is described in the upstream commit:
http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commit;h=51b0c6065aa6e47a47094d73e24be298a4a7f3a1

The above commit describes the problem with the kernel
interface and fixes the second half of the problem,
namely, failure to migrate when using 32bit userspace
on a 64bit kernel.

But earlier versions of qemu-kvm failed migration on
32bits all the time, because initially (including
the version in squeeze), that code performed no buffer
size alignment at all, while kernel performed usual
rounding and hence overwrote userspace memory.  The
problem didn't happen on 64bits because malloc there
performs some "better" alignment by its own.

This first, and more important, half of the issue
were fixed silently by upstream commit
8369e01ce418edb26a6e1f65406cac650563b3da , which
is titled "kvm: port qemu-kvm's bitmap scanning".
Especially this change in kvm-all.c:

-        size = ((mem->memory_size >> TARGET_PAGE_BITS) + 7) / 8;
+        size = ALIGN(((mem->memory_size) >> TARGET_PAGE_BITS), HOST_LONG_BITS) 
/ 8;


Severity is important since migration is important
even on 32bit platfoms, because it is used, in particular,
to save/restore running guest state (migrate to file).

/mjt



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to