qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC Design Doc]Speed up live migration by skipping fre


From: Li, Liang Z
Subject: Re: [Qemu-devel] [RFC Design Doc]Speed up live migration by skipping free pages
Date: Thu, 24 Mar 2016 15:16:29 +0000

> > > Sorry, why do I think what? That ram_addr_t is not guaranteed to
> > > equal GPA of the block?
> > >
> >
> > I mean why do you think that's can't guaranteed to work.
> > Yes, ram_addr_t is not guaranteed to equal GPA of the block. But I
> > didn't use them as GPA. The code in the filter_out_guest_free_pages()
> > in my patch just follow the style of the latest change of
> ram_list.dirty_memory[].
> >
> > The free page bitmap got from the guest in my RFC patch has been
> > filtered out the 'hole', so the bit N of the free page bitmap and the
> > bit N in ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION]->blocks are
> > corresponding to the same guest page.  Right?
> > If it's true, I think I am doing the right thing?
> >
> >
> > Liang
> 
> There's no guarantee that there's a single 'hole'
> even on the PC, and we want balloon to be portable.
> 

As long as we know how many 'hole' and where the holes are.
we can filter out them. QEMU should have this kind of information.
I know my RFC patch passed an arch specific free page bitmap is not
a good idea. So in my design, I changed this by passing a loose free page
bitmap which contains the holes, and let QEMU to filter out the holes
according to some arch specific information. This can make balloon be portable.
  
> So I'm not sure I understand what your patch is doing, do you mean you pass
> the GPA to ram addr mapping from host to guest?
> 

No, my patch passed the 'lowmem', which helps to filter out the hole from host 
to guest.
The design has changed this.

> That can be made to work but it's not a good idea, and I don't see why would
> it be faster than doing the same translation host side.
> 

It's faster because there is no address translation, most of them are bitmap 
operation.

Liang

> 
> > > E.g. HACKING says:
> > >   Use hwaddr for guest physical addresses except pcibus_t
> > >   for PCI addresses.  In addition, ram_addr_t is a QEMU internal
> > > address
> > >   space that maps guest RAM physical addresses into an intermediate
> > >   address space that can map to host virtual address spaces.
> > >
> > >
> > > --



reply via email to

[Prev in Thread] Current Thread [Next in Thread]