diff options
author | Lukas Straub <lukasstraub2@web.de> | 2023-05-08 21:11:07 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-05-10 18:48:11 +0200 |
commit | 5d1d1fcf43ac54993d527612fccf9521c8608ae1 (patch) | |
tree | 0192f91a980cde2d35f76c36952bbe58660154bf /migration | |
parent | 9d638407efa44153c5269f04e5010b105f5daac9 (diff) | |
download | qemu-5d1d1fcf43ac54993d527612fccf9521c8608ae1.zip qemu-5d1d1fcf43ac54993d527612fccf9521c8608ae1.tar.gz qemu-5d1d1fcf43ac54993d527612fccf9521c8608ae1.tar.bz2 |
multifd: Add the ramblock to MultiFDRecvParams
This will be used in the next commits to add colo support to multifd.
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <88135197411df1a71d7832962b39abf60faf0021.1683572883.git.lukasstraub2@web.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r-- | migration/multifd.c | 11 | ||||
-rw-r--r-- | migration/multifd.h | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/migration/multifd.c b/migration/multifd.c index 4e71c19..5c4298e 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -281,7 +281,6 @@ static void multifd_send_fill_packet(MultiFDSendParams *p) static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) { MultiFDPacket_t *packet = p->packet; - RAMBlock *block; int i; packet->magic = be32_to_cpu(packet->magic); @@ -331,21 +330,21 @@ static int multifd_recv_unfill_packet(MultiFDRecvParams *p, Error **errp) /* make sure that ramblock is 0 terminated */ packet->ramblock[255] = 0; - block = qemu_ram_block_by_name(packet->ramblock); - if (!block) { + p->block = qemu_ram_block_by_name(packet->ramblock); + if (!p->block) { error_setg(errp, "multifd: unknown ram block %s", packet->ramblock); return -1; } - p->host = block->host; + p->host = p->block->host; for (i = 0; i < p->normal_num; i++) { uint64_t offset = be64_to_cpu(packet->offset[i]); - if (offset > (block->used_length - p->page_size)) { + if (offset > (p->block->used_length - p->page_size)) { error_setg(errp, "multifd: offset too long %" PRIu64 " (max " RAM_ADDR_FMT ")", - offset, block->used_length); + offset, p->block->used_length); return -1; } p->normal[i] = offset; diff --git a/migration/multifd.h b/migration/multifd.h index 7cfc265..a835643 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -175,6 +175,8 @@ typedef struct { uint32_t next_packet_size; /* packets sent through this channel */ uint64_t num_packets; + /* ramblock */ + RAMBlock *block; /* ramblock host address */ uint8_t *host; /* non zero pages recv through this channel */ |