[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 05/21] virtio: modify save/load handler to handl
From: |
Yoshiaki Tamura |
Subject: |
[Qemu-devel] Re: [PATCH 05/21] virtio: modify save/load handler to handle inuse varialble. |
Date: |
Sun, 28 Nov 2010 20:27:58 +0900 |
2010/11/28 Michael S. Tsirkin <address@hidden>:
> On Thu, Nov 25, 2010 at 03:06:44PM +0900, Yoshiaki Tamura wrote:
>> Modify inuse type to uint16_t, let save/load to handle, and revert
>> last_avail_idx with inuse if there are outstanding emulation.
>>
>> Signed-off-by: Yoshiaki Tamura <address@hidden>
>
> This changes migration format, so it will break compatibility with
> existing drivers. More generally, I think migrating internal
> state that is not guest visible is always a mistake
> as it ties migration format to an internal implementation
> (yes, I know we do this sometimes, but we should at least
> try not to add such cases). I think the right thing to do in this case
> is to flush outstanding
> work when vm is stopped. Then, we are guaranteed that inuse is 0.
> I sent patches that do this for virtio net and block.
Could you give me the link of your patches? I'd like to test
whether they work with Kemari upon failover. If they do, I'm
happy to drop this patch.
Yoshi
>
>> ---
>> hw/virtio.c | 8 +++++++-
>> 1 files changed, 7 insertions(+), 1 deletions(-)
>>
>> diff --git a/hw/virtio.c b/hw/virtio.c
>> index 849a60f..5509644 100644
>> --- a/hw/virtio.c
>> +++ b/hw/virtio.c
>> @@ -72,7 +72,7 @@ struct VirtQueue
>> VRing vring;
>> target_phys_addr_t pa;
>> uint16_t last_avail_idx;
>> - int inuse;
>> + uint16_t inuse;
>> uint16_t vector;
>> void (*handle_output)(VirtIODevice *vdev, VirtQueue *vq);
>> VirtIODevice *vdev;
>> @@ -671,6 +671,7 @@ void virtio_save(VirtIODevice *vdev, QEMUFile *f)
>> qemu_put_be32(f, vdev->vq[i].vring.num);
>> qemu_put_be64(f, vdev->vq[i].pa);
>> qemu_put_be16s(f, &vdev->vq[i].last_avail_idx);
>> + qemu_put_be16s(f, &vdev->vq[i].inuse);
>> if (vdev->binding->save_queue)
>> vdev->binding->save_queue(vdev->binding_opaque, i, f);
>> }
>> @@ -711,6 +712,11 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f)
>> vdev->vq[i].vring.num = qemu_get_be32(f);
>> vdev->vq[i].pa = qemu_get_be64(f);
>> qemu_get_be16s(f, &vdev->vq[i].last_avail_idx);
>> + qemu_get_be16s(f, &vdev->vq[i].inuse);
>> +
>> + /* revert last_avail_idx if there are outstanding emulation. */
>> + vdev->vq[i].last_avail_idx -= vdev->vq[i].inuse;
>> + vdev->vq[i].inuse = 0;
>>
>> if (vdev->vq[i].pa) {
>> virtqueue_init(&vdev->vq[i]);
>> --
>> 1.7.1.2
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to address@hidden
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to address@hidden
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
- Re: [Qemu-devel] Re: [PATCH 13/21] dma-helpers: replace bdrv_aio_writev() with bdrv_aio_writev_proxy()., (continued)
- [Qemu-devel] [PATCH 01/21] Make QEMUFile buf expandable, and introduce qemu_realloc_buffer() and qemu_clear_buffer()., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 19/21] migration-tcp: modify tcp_accept_incoming_migration() to handle ft_mode, and add a hack not to close fd when ft_mode is enabled., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 12/21] Insert event_tap_mmio() to cpu_physical_memory_rw() in exec.c., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 08/21] savevm: introduce util functions to control ft_trans_file from savevm layer., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 18/21] migration: introduce migrate_ft_trans_{put, get}_ready(), and modify migrate_fd_put_ready() when ft_mode is on., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 07/21] Introduce fault tolerant VM transaction QEMUFile and ft_mode., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 02/21] Introduce read() to FdMigrationState., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 05/21] virtio: modify save/load handler to handle inuse varialble., Yoshiaki Tamura, 2010/11/25
- [Qemu-devel] [PATCH 09/21] Introduce event-tap., Yoshiaki Tamura, 2010/11/25
[Qemu-devel] [PATCH 16/21] e1000: replace qemu_send_packet() with qemu_send_packet_proxy()., Yoshiaki Tamura, 2010/11/25
[Qemu-devel] [PATCH 04/21] qemu-char: export socket_set_nodelay()., Yoshiaki Tamura, 2010/11/25
Re: [Qemu-devel] [PATCH 00/21] Kemari for KVM 0.2, Blue Swirl, 2010/11/26