aboutsummaryrefslogtreecommitdiff
path: root/block/dirty-bitmap.c
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2022-10-11 17:55:52 -0400
committerJuan Quintela <quintela@redhat.com>2022-12-15 10:30:37 +0100
commitd9e474ea564bc109bc6fc81323ae90a7c9e7f04f (patch)
treecad60174dbfd61079d3ac32e422a152b1cdab45f /block/dirty-bitmap.c
parent23b7576d7879cdc93e3328e1a9228e8843780012 (diff)
downloadqemu-d9e474ea564bc109bc6fc81323ae90a7c9e7f04f.zip
qemu-d9e474ea564bc109bc6fc81323ae90a7c9e7f04f.tar.gz
qemu-d9e474ea564bc109bc6fc81323ae90a7c9e7f04f.tar.bz2
migration: Teach PSS about host page
Migration code has a lot to do with host pages. Teaching PSS core about the idea of host page helps a lot and makes the code clean. Meanwhile, this prepares for the future changes that can leverage the new PSS helpers that this patch introduces to send host page in another thread. Three more fields are introduced for this: (1) host_page_sending: this is set to true when QEMU is sending a host page, false otherwise. (2) host_page_{start|end}: these point to the start/end of host page we're sending, and it's only valid when host_page_sending==true. For example, when we look up the next dirty page on the ramblock, with host_page_sending==true, we'll not try to look for anything beyond the current host page boundary. This can be slightly efficient than current code because currently we'll set pss->page to next dirty bit (which can be over current host page boundary) and reset it to host page boundary if we found it goes beyond that. With above, we can easily make migration_bitmap_find_dirty() self contained by updating pss->page properly. rs* parameter is removed because it's not even used in old code. When sending a host page, we should use the pss helpers like this: - pss_host_page_prepare(pss): called before sending host page - pss_within_range(pss): whether we're still working on the cur host page? - pss_host_page_finish(pss): called after sending a host page Then we can use ram_save_target_page() to save one small page. Currently ram_save_host_page() is still the only user. If there'll be another function to send host page (e.g. in return path thread) in the future, it should follow the same style. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'block/dirty-bitmap.c')
0 files changed, 0 insertions, 0 deletions