> Current migration code returns number of bytes transferred and from there > we decide if we.have sent something or not. Problem, we need two results: > number of pages written, and number of bytes written (depending on > compression, zero pages, etc, it is not possible to derive one value from the > other). > > So, I changed all relevant function to return the number of written pages, > and then pass as uint64_t *bytes_transferred to update the written bytes. > > On current code, makes things a bit easier to understand, but is not strictely > necesary. But for the compression patches from Li, it makes a big difference, > we can return that we have written a page, even if we have just started the > write, but having writtten in reality zero bytes. > > Once there, I add doxygen documentation to all function that I touched (yes, > I was long due). > > save_block_hdr really saved headers for pages, not blocks. Rename it, and > simplify the interface. > > Li, does this make your life easier? I hope so. Should make really easy to > remove the one_bytes_sent "hack", and allow my other suggestions. > > Comments? > > Later, Juan. > > PD. Code is obviously correct, but I run it through virt-test > anyways. And it failed :-( In despair, I tried virt-test on HEAD, > and it also failed, so .... I add another thing to my ToDo list. > > PD2. Modifying ram_save_page() has become complicated, very > complicated. I think that know a couple of simplications, but > require touching RDMA code, and anyways, fixing migration in > "master" looks like a higher priority.
Hi Juan, when could you make your patches be merged? I have prepared my Version 6 patches, and I am waiting for your patches being merged before I can send out my patches. Liang