On 08/19/13 13:18, Michael S. Tsirkin wrote: > 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.
You're right. Thanks. Laszlo