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?


Reply via email to