AtomicBitmapMmap
implements a simple memory-mapped bitmap on the page level with test
and set operations. The main use case is to support live migration on vhost-user backends
(see VHOST_USER_PROTOCOL_F_LOG_SHMFD
and VHOST_USER_SET_LOG_BASE
in the vhost-user protocol
specification). It uses a fixed memory page size of LOG_PAGE_SIZE
bytes, so it converts
addresses to page numbers before setting or clearing the bits.
BitmapMmapRegion
implements a bitmap tha can be replaced at runtime.
The main use case is to support live migration on vhost-user backends
(see VHOST_USER_PROTOCOL_F_LOG_SHMFD
and VHOST_USER_SET_LOG_BASE
in the vhost-user protocol
specification). It uses a fixed memory page size of VHOST_LOG_PAGE
bytes (i.e., 4096
bytes),
so it converts addresses to page numbers before setting or clearing the bits.
MmaplogReg
mmaps the frontend bitmap backing memory in the current process.