On Fri, 05/16 11:22, Andreas Färber wrote: > Am 16.05.2014 11:14, schrieb Fam Zheng: > > On Thu, 05/15 12:08, Greg Kurz wrote: > >>>> The main problem I see is that virtio sucks: as you see in patch 8, we > >>>> have > >>>> to be careful not to call vring or virtqueue stuff before the device > >>>> knows > >>>> its endianness or it breaks... I need to study how the virtio-bus gets > >>>> migrated to ensure the endian section is streamed before the devices. > >>> > >>> There is no ordering guarantee. The state needs to be migrated in the > >>> device or bus where it sits, if post-load processing is required; i.e., > >>> if it's in VirtIODevice then something like this series, if it were on > >>> VirtioBus exclusively (device asking bus for its endianness each time > >>> and does not do post-load stuff) then endianness could be migrated as a > >>> new bus section. Not sure if that would help the "broken" state though? > >>> > >> > >> IIRW the "broken" state was proposed as a per-device property... > > > > Yes. > > Sure, and that makes sense, but we do have a 1:1 relation of bus/device, > or does virtio-mmio support more? If device doesn't work for some > reason, we could (mis)use the bus as fallback then. >
FWIW, I just realized that "broken" may be loaded from device status bit in the future, so we don't need to migrate the field separately: https://tools.oasis-open.org/issues/browse/VIRTIO-98 Fam