Il 26/11/2013 14:53, Lei Li ha scritto: > 1) ram_save_setup stage, it will send all the bytes in this stages > to destination, and send_pipefd by ram_control_before_iterate > at the end of it.
ram_save_setup runs doesn't send anything from guest RAM. It sends the lengths of the various blocks. As you said, at the end of ram_save_setup you send the pipefd. ram_save_iterate runs before ram_save_complete. ram_save_iterate and ram_save_complete write data with exactly the same format. Both of them can use ram_save_page It should not matter if some pages are sent as part of ram_save_iterate and others as part of ram_save_complete. One possibility is that you are hitting a bug due to the way you ignore the "0x01" byte that send_pipefd places on the socket. >> 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. > > I am afraid that page flipping can not proceed correctly without this.. I really would like to understand why, because it really shouldn't (this shouldn't be a place where you need a hook). Paolo