On Tue, May 07, 2024 at 06:52:50AM +0200, Jinpu Wang wrote: > Hi Peter, hi Daniel, > On Mon, May 6, 2024 at 5:29 PM Peter Xu <peterx@xxxxxxxxxx> wrote: > > > > On Mon, May 06, 2024 at 12:08:43PM +0200, Jinpu Wang wrote: > > > Hi Peter, hi Daniel, > > > > Hi, Jinpu, > > > > Thanks for sharing this test results. Sounds like a great news. > > > > What's your plan next? Would it then be worthwhile / possible moving QEMU > > into that direction? Would that greatly simplify rdma code as Dan > > mentioned? > I'm rather not familiar with QEMU migration yet, from the test > result, I think it's a possible direction, > just we need to at least based on a rather recent release like > rdma-core v33 with proper 'fork' support. > > Maybe Dan or you could give more detail about what you have in mind > for using rsocket as a replacement for the future. > We will also look into the implementation details in the meantime. The migration/socket.c file is the entrypoint for traditional TCP based migration code. It uses the QIOChannelSocket class which is written against the traditional sockets APIs, and uses the QAPI SocketAddress data type to configure it.. My thought was that potentially SocketAddress could be extended to offer RDMA addressing eg { 'union': 'SocketAddress', 'base': { 'type': 'SocketAddressType' }, 'discriminator': 'type', 'data': { 'inet': 'InetSocketAddress', 'unix': 'UnixSocketAddress', 'vsock': 'VsockSocketAddress', 'fd': 'FdSocketAddress', 'rdma': 'InetSocketAddress' } } And then QIOChannelSocket could be also extended to call the alternative 'rsockets' APIs where needed. That would mean that existing sockets migration code would almost "just work" with RDMA. Theoreticaly any other part of QEMU using QIOChannelSocket would also then magically support RDMA too, with very little (if any) extra work. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx