Il 26/11/2013 13:03, Lei Li ha scritto: >>> >>> + if (pending_size && pending_size >= max_size && >>> + !runstate_needs_reset()) { >>> qemu_savevm_state_iterate(s->file); >> I'm not sure why you need this. > > The adjustment here is to avoid the iteration stage for page flipping. > Because pending_size = ram_save_remaining() * TARGET_PAGE_SIZE which is > not 0 and pending_size > max_size (0) at start.
It's still not clear to me that avoiding the iteration stage is necessary. I think it's just an optimization to avoid scanning the bitmap, but: (1) Juan's bitmap optimization will make this mostly unnecessary (2) getting good downtime from page flipping will require postcopy anyway. > And you said 'This is a bit ugly but I understand the need. Perhaps "&& > !runstate_needs_reset()" like below?' :) Oops. I might have said this before thinking about postcopy and/or before seeing the benchmark results from Juan's patches. If this part of the patch is just an optimization, I'd rather leave it out for now. Thanks for putting up with me. :) Paolo