On 07/10/2015 08:20, Denis V. Lunev wrote: > > All calls of this hook will be from ram_save_pending(). > > At the first call of this hook we need to save the initial > size of VM memory and put the migration thread to sleep for > decent period (downtime for example). During this period > guest would dirty memory. > > The second and the last call. > We make our estimation of dirty bytes rate assuming that time > between two synchronizations of dirty bitmap differs from downtime > negligibly. > > An alternative to this approach is receiving information about > size of data “transmitted” through the transport.
This would use before_ram_iterate/after_ram_iterate, right? > However, this > way creates large time and memory overheads: > 1/Transmitted guest’s memory pages are copied to QEMUFile’s buffer > (~8 sec per 4GB VM) Note that they are not if you implement writev_buffer. > 2/Dirty memory pages are processed one by one (~60msec per 4GB VM) That however improves the accuracy, doesn't it? Paolo