Il 01/03/2013 14:52, Eric Blake ha scritto: > On 03/01/2013 06:31 AM, Peter Lieven wrote: >> at the beginning of migration all pages are marked dirty and >> in the first round a bulk migration of all pages is performed. >> >> currently all these pages are copied to the page cache regardless >> if there are frequently updated or not. this doesn't make sense >> since most of these pages are never transferred again. >> >> this patch changes the XBZRLE transfer to only be used after >> the bulk stage has been completed. that means a page is added >> to the page cache the second time it is transferred and XBZRLE >> can benefit from the third time of transfer. >> >> since the page cache is likely smaller than the number of pages >> its also likely that in the second round the page is missing in the >> cache due to collisions in the bulk phase. >> >> on the other hand a lot of unneccssary mallocs, memdups and frees > > s/unneccssary/unnecessary/ > >> are saved. >> >> Signed-off-by: Peter Lieven <p...@kamp.de> > > Do you have any benchmark numbers? At any rate, the explanation seems > sound, so a benchmark should show this.
It probably would be much less of a problem with the pending patches to move RAM migration out of the big QEMU lock. However, the explanation makes sense. Paolo >> --- >> arch_init.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) > > Reviewed-by: Eric Blake <ebl...@redhat.com> >