On Mon, Jun 03, 2019 at 02:10:34PM +0800, Wei Yang wrote: > On Mon, Jun 03, 2019 at 02:05:47PM +0800, Wei Yang wrote: > >On Mon, Jun 03, 2019 at 01:40:13PM +0800, Peter Xu wrote: > >> > >>Ah I see, thanks for the pointer. Then I would agree it's fine. > >> > >>I'm not an expert of TCG - I'm curious on why all those three dirty > >>bitmaps need to be set at the very beginning. IIUC at least the VGA > >>bitmap should not require that (so IMHO we should be fine to have all > >>zeros with VGA bitmap for ramblocks, and we only set them when the > >>guest touches them). Migration bitmap should be special somehow but I > >>don't know much on TCG/TLB part I'd confess so I can't say. In other > >>words, if migration is the only one that requires this "all-1" > >>initialization then IMHO we may consider to remove the other part > >>rather than here in migration because that's what we'd better to be > >>sure with. > > > >I am not sure about the background here, so I didn't make a change at this > >place. > > > >> > >>And even if you want to remove this, I still have two suggestions: > >> > >>(1) proper comment here above bmap on the above fact that although > >> bmap is not set here but it's actually set somewhere else because > >> we'll sooner or later copy all 1s from the ramblock bitmap > >> > >>(2) imho you can move "migration_dirty_pages = 0" into > >> ram_list_init_bitmaps() too to let them be together > >> > > I took a look into this one. > > ram_list_init_bitmaps() setup bitmap for each RAMBlock, while ram_state_init() > setup RAMState. Since migration_dirty_pages belongs to RAMState, it maybe more > proper to leave it at the original place. > > Do you feel good about this?
Yes it's ok to me. Thanks, -- Peter Xu