migration/multifd: solve zero page causing multiple page faults
authorYuan Liu <yuan1.liu@intel.com>
Mon, 1 Apr 2024 15:41:10 +0000 (23:41 +0800)
committerPeter Xu <peterx@redhat.com>
Tue, 23 Apr 2024 22:36:01 +0000 (18:36 -0400)
commit5ef7e26bdb7eda10d6d5e1b77121be9945e5e550
tree8823bbea099cf77e06a48b8d465ff2666c9adf6a
parentdd031677257d7d00a72f28f073befc22691a0ad6
migration/multifd: solve zero page causing multiple page faults

Implemented recvbitmap tracking of received pages in multifd.

If the zero page appears for the first time in the recvbitmap, this
page is not checked and set.

If the zero page has already appeared in the recvbitmap, there is no
need to check the data but directly set the data to 0, because it is
unlikely that the zero page will be migrated multiple times.

Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240401154110.2028453-2-yuan1.liu@intel.com
[peterx: touch up the comment, as the bitmap is used outside postcopy now]
Signed-off-by: Peter Xu <peterx@redhat.com>
include/exec/ramblock.h
migration/multifd-zero-page.c
migration/multifd-zlib.c
migration/multifd-zstd.c
migration/multifd.c
migration/ram.c
migration/ram.h