
On 07/26/2013 02:56 PM, Eric Blake wrote:
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.
Acknowledged.