* Bharata B Rao (bhar...@linux.vnet.ibm.com) wrote: > On Mon, Nov 09, 2015 at 11:03:02AM +0000, Dr. David Alan Gilbert wrote: > > <snip> > > > > Oh, I think I see it; the following is untested, I'll grab a machine to > > try it on but it will take a little while: > > > > diff --git a/migration/ram.c b/migration/ram.c > > index 62cf42b..e6db965 100644 > > --- a/migration/ram.c > > +++ b/migration/ram.c > > @@ -2273,6 +2274,7 @@ static int ram_load_postcopy(QEMUFile *f) > > /* Temporary page that is later 'placed' */ > > void *postcopy_host_page = postcopy_get_tmp_page(mis); > > void *last_host = NULL; > > + bool all_zero = false; > > > > while (!ret && !(flags & RAM_SAVE_FLAG_EOS)) { > > ram_addr_t addr; > > @@ -2280,7 +2282,6 @@ static int ram_load_postcopy(QEMUFile *f) > > void *page_buffer = NULL; > > void *place_source = NULL; > > uint8_t ch; > > - bool all_zero = false; > > > > addr = qemu_get_be64(f); > > flags = addr & ~TARGET_PAGE_MASK; > > So with the above fix on top of the previous one you sent, I am able to > do back and forth postcopy migration of pseries guest within the > same host while switching to postcopy mode immediately after starting > the migration. > > And btw I can see lots of hits to postcopy_place_page_zero now!
Excellent! Thanks for finding that; that misplaced line has been in there for about a year :-) Dave > > Regards, > Bharata. > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK