Il 19/03/2013 14:08, Michael R. Hines ha scritto: > On 03/19/2013 05:23 AM, Paolo Bonzini wrote: >> >> Yes---this is a separate patch. Apologies if you had the if(fd != -1) >> before. :) In fact, both the if(fd != -1) and the >> if(!migrate_use_rdma(f)) are bad, but I prefer to eliminate as many uses >> as possible of migrate_use_rdma. > I agree. In my current patch I've eliminated all of them.
Very nice. It remains to be seen how many are replaced by checks on the QEMUFileOps :) but it cannot be worse! >> Does librdmacm support non-blocking operation, similar to select() or >> poll()? Perhaps we can add support for that later. > > Yes, it does, actually. The library provides what is called an "event > channel". > (This term is overloaded by other technologies, but that's OK). > > An event channel is a file descriptor provided by (I believe) the rdma_cm > kernel module driver. > > When you poll on this file descriptor, it can tell you all sorts of things > just like other files or sockets like when data is ready or when > events of interest have completed (like the completion queue has elements). > > In my current patch, I'm using this during > "rdma_accept_incoming_connection()", > but I'm not currently using it for the rest of the coroutine on the > receiver side. Ok, this can be added later. Paolo