On Fri, Aug 1, 2014 at 2:10 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Il 01/08/2014 05:09, Ming Lei ha scritto: >>>> >> Per virtio spec, only the feature is set, the VM can be allowed to >>>> >> access the 'num_queues' field, and I didn't see any problem from >>>> >> VM's view point. >>>> >> >>>> >> So could you explain why both dataplane and non-dataplane have >>>> >> to support the feature. >>> > >>> > Because otherwise you change the guest ABI. >> Sorry, I don't understand why the guest ABI is changed since >> VM only parses 'num_queues' iff the feature is set, and the DATAPLANE >> macro is determined during compiling. > > Even recompiling the same version of QEMU should not change the guest > ABI. Recompilation may affect which devices are present, but then the > migration destination will not even start if something is broken. > > And as you pointed out, migration from dataplane to non-dataplane will > break because you didn't convert callers of virtqueue_pop/push.
OK, I will convert non-dataplane to support multi virtqueues in V1, and the conversion is not difficult and straightforward. BTW, docs/migration.txt mentions that "QEMU has to be launched with the same arguments the two times", so can I understand that migration from dataplane to non-dataplane shouldn't have been allowed? Thanks,