[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] migration: cache memory region ram ptr
From: |
陈梁 |
Subject: |
Re: [Qemu-devel] [PATCH] migration: cache memory region ram ptr |
Date: |
Sat, 10 May 2014 19:38:25 +0800 |
Hi,
The patch is correct. There is a small improved point.
>
> /* In doubt sent page as normal */
> bytes_sent = -1;
> @@ -990,16 +996,17 @@ static inline void *host_from_stream_offset(QEMUFile *f,
> int flags)
> {
> static RAMBlock *block = NULL;
RAMBlock *block = NULL;
> + static uint8_t *ram_ptr;
> char id[256];
> uint8_t len;
>
> if (flags & RAM_SAVE_FLAG_CONTINUE) {
> - if (!block) {
> + if (!block || !ram_ptr) {
if (!ram_ptr) {
Best regards
ChenLiang
> fprintf(stderr, "Ack, bad migration stream!\n");
> return NULL;
> }
>
> - return memory_region_get_ram_ptr(block->mr) + offset;
> + return ram_ptr + offset;
> }
>
> len = qemu_get_byte(f);
> @@ -1007,8 +1014,10 @@ static inline void *host_from_stream_offset(QEMUFile
> *f,
> id[len] = 0;
>
> QTAILQ_FOREACH(block, &ram_list.blocks, next) {
> - if (!strncmp(id, block->idstr, sizeof(id)))
> - return memory_region_get_ram_ptr(block->mr) + offset;
> + if (!strncmp(id, block->idstr, sizeof(id))) {
> + ram_ptr = memory_region_get_ram_ptr(block->mr);
> + return ram_ptr + offset;
> + }
> }
>
> fprintf(stderr, "Can't find block %s!\n", id);
> --
> 1.7.9.5
>
>