[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] virtio 1 issues
From: |
Jason Wang |
Subject: |
Re: [Qemu-devel] virtio 1 issues |
Date: |
Fri, 07 Aug 2015 13:07:35 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 |
On 08/07/2015 06:31 AM, Michael S. Tsirkin wrote:
> Going over the code, I found a couple of issues.
> Recording them here since I won't be able to work
> on them until after the forum.
>
>
> 1. I realized we don't save/restore
> serialize the following fields in virtio pci:
>
> uint32_t dfselect;
> uint32_t gfselect;
> uint32_t guest_features[2];
> struct {
> uint16_t num;
> bool enabled;
> uint32_t desc[2];
> uint32_t avail[2];
> uint32_t used[2];
desc, avail, used could be inferred from vring.desc, vring.avail and
vring.used
> } vqs[VIRTIO_QUEUE_MAX];
>
> This isn't an issue unless VM is migrated during driver initialization.
>
> 2. ring resizing is broken - it actually has a comment:
> /* TODO: need a way to put num back on reset. */
> guest that runs out of memory might down-size the ring.
> Afterwards, ring size won't come back up after reset - not nice.
>
Then we need a new field to keep track the original queue size and
migrate this.
>
> Given that the modern layout is disabled by default,
> I don't think these are release blockers.
>
Yes and looks like we need a new subsection and transport specific
callbacks to fix above?