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:
parent
eeccb99c9d
commit
82ea3e3b99
@ -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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user