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>
This commit is contained in:
parent
9d638407ef
commit
5d1d1fcf43
@ -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;
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user