migration: Rename 'bs' to 'block' in background snapshot code

Rename 'bs' to commonly used 'block' in migration/ram.c background
snapshot code.

Signed-off-by: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
Reported-by: David Hildenbrand <david@redhat.com>
Message-Id: <20210401092226.102804-5-andrey.gruzdev@virtuozzo.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
Andrey Gruzdev 2021-04-01 12:22:26 +03:00 committed by Dr. David Alan Gilbert
parent eeccb99c9d
commit 82ea3e3b99

View File

@ -1455,7 +1455,7 @@ static RAMBlock *poll_fault_page(RAMState *rs, ram_addr_t *offset)
{ {
struct uffd_msg uffd_msg; struct uffd_msg uffd_msg;
void *page_address; void *page_address;
RAMBlock *bs; RAMBlock *block;
int res; int res;
if (!migrate_background_snapshot()) { if (!migrate_background_snapshot()) {
@ -1468,9 +1468,9 @@ static RAMBlock *poll_fault_page(RAMState *rs, ram_addr_t *offset)
} }
page_address = (void *)(uintptr_t) uffd_msg.arg.pagefault.address; page_address = (void *)(uintptr_t) uffd_msg.arg.pagefault.address;
bs = qemu_ram_block_from_host(page_address, false, offset); block = qemu_ram_block_from_host(page_address, false, offset);
assert(bs && (bs->flags & RAM_UF_WRITEPROTECT) != 0); assert(block && (block->flags & RAM_UF_WRITEPROTECT) != 0);
return bs; return block;
} }
/** /**
@ -1526,7 +1526,7 @@ bool ram_write_tracking_compatible(void)
{ {
const uint64_t uffd_ioctls_mask = BIT(_UFFDIO_WRITEPROTECT); const uint64_t uffd_ioctls_mask = BIT(_UFFDIO_WRITEPROTECT);
int uffd_fd; int uffd_fd;
RAMBlock *bs; RAMBlock *block;
bool ret = false; bool ret = false;
/* Open UFFD file descriptor */ /* Open UFFD file descriptor */
@ -1537,15 +1537,15 @@ bool ram_write_tracking_compatible(void)
RCU_READ_LOCK_GUARD(); RCU_READ_LOCK_GUARD();
RAMBLOCK_FOREACH_NOT_IGNORED(bs) { RAMBLOCK_FOREACH_NOT_IGNORED(block) {
uint64_t uffd_ioctls; uint64_t uffd_ioctls;
/* Nothing to do with read-only and MMIO-writable regions */ /* Nothing to do with read-only and MMIO-writable regions */
if (bs->mr->readonly || bs->mr->rom_device) { if (block->mr->readonly || block->mr->rom_device) {
continue; continue;
} }
/* Try to register block memory via UFFD-IO to track writes */ /* Try to register block memory via UFFD-IO to track writes */
if (uffd_register_memory(uffd_fd, bs->host, bs->max_length, if (uffd_register_memory(uffd_fd, block->host, block->max_length,
UFFDIO_REGISTER_MODE_WP, &uffd_ioctls)) { UFFDIO_REGISTER_MODE_WP, &uffd_ioctls)) {
goto out; goto out;
} }
@ -1567,13 +1567,13 @@ out:
* Since it's solely used for userfault_fd WP feature, here we just * Since it's solely used for userfault_fd WP feature, here we just
* hardcode page size to qemu_real_host_page_size. * hardcode page size to qemu_real_host_page_size.
* *
* @bs: RAM block to populate * @block: RAM block to populate
*/ */
static void ram_block_populate_pages(RAMBlock *bs) static void ram_block_populate_pages(RAMBlock *block)
{ {
char *ptr = (char *) bs->host; char *ptr = (char *) block->host;
for (ram_addr_t offset = 0; offset < bs->used_length; for (ram_addr_t offset = 0; offset < block->used_length;
offset += qemu_real_host_page_size) { offset += qemu_real_host_page_size) {
char tmp = *(ptr + offset); char tmp = *(ptr + offset);
@ -1587,13 +1587,13 @@ static void ram_block_populate_pages(RAMBlock *bs)
*/ */
void ram_write_tracking_prepare(void) void ram_write_tracking_prepare(void)
{ {
RAMBlock *bs; RAMBlock *block;
RCU_READ_LOCK_GUARD(); RCU_READ_LOCK_GUARD();
RAMBLOCK_FOREACH_NOT_IGNORED(bs) { RAMBLOCK_FOREACH_NOT_IGNORED(block) {
/* Nothing to do with read-only and MMIO-writable regions */ /* Nothing to do with read-only and MMIO-writable regions */
if (bs->mr->readonly || bs->mr->rom_device) { if (block->mr->readonly || block->mr->rom_device) {
continue; continue;
} }
@ -1605,7 +1605,7 @@ void ram_write_tracking_prepare(void)
* UFFDIO_WRITEPROTECT_MODE_WP mode setting would silently skip * UFFDIO_WRITEPROTECT_MODE_WP mode setting would silently skip
* pages with pte_none() entries in page table. * pages with pte_none() entries in page table.
*/ */
ram_block_populate_pages(bs); ram_block_populate_pages(block);
} }
} }
@ -1618,7 +1618,7 @@ int ram_write_tracking_start(void)
{ {
int uffd_fd; int uffd_fd;
RAMState *rs = ram_state; RAMState *rs = ram_state;
RAMBlock *bs; RAMBlock *block;
/* Open UFFD file descriptor */ /* Open UFFD file descriptor */
uffd_fd = uffd_create_fd(UFFD_FEATURE_PAGEFAULT_FLAG_WP, true); uffd_fd = uffd_create_fd(UFFD_FEATURE_PAGEFAULT_FLAG_WP, true);
@ -1629,27 +1629,27 @@ int ram_write_tracking_start(void)
RCU_READ_LOCK_GUARD(); RCU_READ_LOCK_GUARD();
RAMBLOCK_FOREACH_NOT_IGNORED(bs) { RAMBLOCK_FOREACH_NOT_IGNORED(block) {
/* Nothing to do with read-only and MMIO-writable regions */ /* Nothing to do with read-only and MMIO-writable regions */
if (bs->mr->readonly || bs->mr->rom_device) { if (block->mr->readonly || block->mr->rom_device) {
continue; continue;
} }
/* Register block memory with UFFD to track writes */ /* Register block memory with UFFD to track writes */
if (uffd_register_memory(rs->uffdio_fd, bs->host, if (uffd_register_memory(rs->uffdio_fd, block->host,
bs->max_length, UFFDIO_REGISTER_MODE_WP, NULL)) { block->max_length, UFFDIO_REGISTER_MODE_WP, NULL)) {
goto fail; goto fail;
} }
/* Apply UFFD write protection to the block memory range */ /* Apply UFFD write protection to the block memory range */
if (uffd_change_protection(rs->uffdio_fd, bs->host, if (uffd_change_protection(rs->uffdio_fd, block->host,
bs->max_length, true, false)) { block->max_length, true, false)) {
goto fail; goto fail;
} }
bs->flags |= RAM_UF_WRITEPROTECT; block->flags |= RAM_UF_WRITEPROTECT;
memory_region_ref(bs->mr); memory_region_ref(block->mr);
trace_ram_write_tracking_ramblock_start(bs->idstr, bs->page_size, trace_ram_write_tracking_ramblock_start(block->idstr, block->page_size,
bs->host, bs->max_length); block->host, block->max_length);
} }
return 0; return 0;
@ -1657,19 +1657,20 @@ int ram_write_tracking_start(void)
fail: fail:
error_report("ram_write_tracking_start() failed: restoring initial memory state"); error_report("ram_write_tracking_start() failed: restoring initial memory state");
RAMBLOCK_FOREACH_NOT_IGNORED(bs) { RAMBLOCK_FOREACH_NOT_IGNORED(block) {
if ((bs->flags & RAM_UF_WRITEPROTECT) == 0) { if ((block->flags & RAM_UF_WRITEPROTECT) == 0) {
continue; continue;
} }
/* /*
* In case some memory block failed to be write-protected * In case some memory block failed to be write-protected
* remove protection and unregister all succeeded RAM blocks * remove protection and unregister all succeeded RAM blocks
*/ */
uffd_change_protection(rs->uffdio_fd, bs->host, bs->max_length, false, false); uffd_change_protection(rs->uffdio_fd, block->host, block->max_length,
uffd_unregister_memory(rs->uffdio_fd, bs->host, bs->max_length); false, false);
uffd_unregister_memory(rs->uffdio_fd, block->host, block->max_length);
/* Cleanup flags and remove reference */ /* Cleanup flags and remove reference */
bs->flags &= ~RAM_UF_WRITEPROTECT; block->flags &= ~RAM_UF_WRITEPROTECT;
memory_region_unref(bs->mr); memory_region_unref(block->mr);
} }
uffd_close_fd(uffd_fd); uffd_close_fd(uffd_fd);
@ -1683,24 +1684,25 @@ fail:
void ram_write_tracking_stop(void) void ram_write_tracking_stop(void)
{ {
RAMState *rs = ram_state; RAMState *rs = ram_state;
RAMBlock *bs; RAMBlock *block;
RCU_READ_LOCK_GUARD(); RCU_READ_LOCK_GUARD();
RAMBLOCK_FOREACH_NOT_IGNORED(bs) { RAMBLOCK_FOREACH_NOT_IGNORED(block) {
if ((bs->flags & RAM_UF_WRITEPROTECT) == 0) { if ((block->flags & RAM_UF_WRITEPROTECT) == 0) {
continue; continue;
} }
/* Remove protection and unregister all affected RAM blocks */ /* Remove protection and unregister all affected RAM blocks */
uffd_change_protection(rs->uffdio_fd, bs->host, bs->max_length, false, false); uffd_change_protection(rs->uffdio_fd, block->host, block->max_length,
uffd_unregister_memory(rs->uffdio_fd, bs->host, bs->max_length); false, false);
uffd_unregister_memory(rs->uffdio_fd, block->host, block->max_length);
trace_ram_write_tracking_ramblock_stop(bs->idstr, bs->page_size, trace_ram_write_tracking_ramblock_stop(block->idstr, block->page_size,
bs->host, bs->max_length); block->host, block->max_length);
/* Cleanup flags and remove reference */ /* Cleanup flags and remove reference */
bs->flags &= ~RAM_UF_WRITEPROTECT; block->flags &= ~RAM_UF_WRITEPROTECT;
memory_region_unref(bs->mr); memory_region_unref(block->mr);
} }
/* Finally close UFFD file descriptor */ /* Finally close UFFD file descriptor */