If virtio device is not fully initialized, then suspend fails with:
vi_pci_snapshot_queues: invalid address: vq->vq_desc Failed to snapshot virtio-rnd; ret=14
Differential D26268
bhyve: snapshot virtio queues can fail gusev.vitaliy_gmail.com on Sep 1 2020, 11:23 AM. Authored by Tags Referenced Files
Details
If virtio device is not fully initialized, then suspend fails with: vi_pci_snapshot_queues: invalid address: vq->vq_desc Failed to snapshot virtio-rnd; ret=14 Suspend and resume VM. VM should suspend w/o error and keep working after resume.
Diff Detail
Event TimelineComment Actions Is the issue specific to virtio-rnd, or why does it appear? I'm wondering why it was not caught earlier. Comment Actions I saw the same message also for virtio-net: vi_pci_snapshot_queues: invalid address: vq->vq_desc Failed to snapshot virtio-net; ret=14 To reproduce virtio-net fail, you need to suspend VM before vi_vq_init() is called, i.e. before even grub is started. To reproduce for virtio-rnd, you need run suspend exactly after grub and before guest Linux OS initialise virtio random device. By the code you can see that this patch is required if device is not initialised by guest OS. Comment Actions I think yes. Can you do it? It would be nice if these patches goes to the upstream. |