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

Reply via email to