On 11/17/2015 05:05 PM, Dr. David Alan Gilbert wrote: > Why is the hash needed on the destination; if it's a page which the source > has decided isn't in a matching page, what does the destination use the > hash for? >
After the migration has finished, the hashes are still stored in RAM for the next migration, when the current destination becomes the new migration source. This way there is no need to recompute the checksums on the next migration -- they are already in RAM. >>> I think there's a problem here that given the source is still running it's >>> CPU and changing >>> memory; it can be writing to the page at the same time, so the page you >>> send might not >>> match the hash you send; we're guaranteed to resend the page again if it >>> was written >>> to, but that still doesn't make these two things match; although as I say >>> above >>> I'm not sure why SAVE_FLAG_PAGE_HASH exists. >> >> This is true. In this case, we will just delete the SAVE_FLAG_PAGE_HASH flag. > > But how do you know to delete the SAVE_FLAG_PAGE_HASH flag? > Sorry for not stating this clear enough. We will remove this flag from the code, and send pages with SAVE_FLAG_PAGE instead. In this case the destination will compute the hash. > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK > -- With best regards, Bohdan Trach