On Mon, Aug 19, 2013 at 01:09:36PM +0200, Laszlo Ersek wrote: > On 08/19/13 12:21, Peter Maydell wrote: > > On 19 August 2013 10:59, Laszlo Ersek <ler...@redhat.com> wrote: > >> On 08/13/13 00:43, Michael S. Tsirkin wrote: > >>> Migration code assumes that each RAM block is a multiple of target page > >>> size. > >> > >> Isn't that a valid assumption, considering the TARGET_PAGE_ALIGN() macro > >> call in qemu_ram_alloc_from_ptr() [exec.c]? > > > > That macro only makes the size we store in the ramblock data > > structure be a multiple of the page size -- it does nothing to ensure > > that the actual memory that was passed in by the caller is the > > right size. (It will have the right effect where qemu_ram_alloc_from_ptr > > is allocating the memory itself, obviously.) > > Which is the case for 2/2, see my comments there: > > memory_region_init_ram() > qemu_ram_alloc() > qemu_ram_alloc_from_ptr() <---- host==NULL > TARGET_PAGE_ALIGN() > > Laszlo
The issue this addresses is not the size of RAM allocated. The issue is the size of the MR. Migration code assumes the size of the MR is a multiple of TARGET_PAGE_SIZE. -- MST