On 07/26/2013 12:48 PM, Michael R. Hines wrote:
>> int ret = -1;
>> + if (qemuCaps->version >= MIN_X_RDMA_VERSION) {
>> + virQEMUCapsSet(qemuCaps, QEMU_CAPS_MIGRATE_QEMU_X_RDMA);
>> + }
>> +
>> if (!(archstr = qemuMonitorGetTargetArch(mon)))
>> return -1;
>>
> This is wrong. First, you're adding this into a totally wrong place and
> second, we need a better detection which is not based on qemu version.
How would we detect without using the QEMU version?
Call 'query-migrate-capabilities' as part of the one-time capability
probing in qemu_capabilities.c; if [x-]rdma-pin-all is listed, then RDMA
is supported and you set the qemuCaps bit. There's also the matter of
handshaking between source and dest - we can't enable it on the source
unless the dest also supports rdma; there, the migration cookie should
be handy to pass destination support of the qemuCaps bit back to the
source, in time for the source to react.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org