Skip to contentSkip to conversation

Support for direct inter-VM sockets? Inter-VM shared memory?

DISCUSSION Tyler Bletsch 2 participants 2 messages May 20, 2010 – May 23, 2010 KVM

lore
Share & tools
lore
#0 lore raw

I'm interested in moving some research prototypes from Xen to KVM, but there are a few esoteric features I'd need to do this.

First is an efficient mechanism for direct VM-to-VM sockets...something that bypasses the protocol stack and minimizes overhead. Xen has XenSocket, XenLoop, and others. I found a few mentions of this idea dating back to 2006*, mostly saying that a few people have done something like this as a one-off, but nothing official has been released. I haven't found anything like this more recently, though. Has there been any progress on this front? Ideally, I'd want a character device or a special program that acts as a fast pipe to a different VM.

Second, what about inter-VM shared memory?

Apologies if I'm missing some well known doc...I search around google & the wiki to no avail.

Thanks,
Tyler Bletsch

* http://www.mail-archive.com/[email protected]/msg00304.html

#1 lore raw
Quoted 5 lines · Tyler Bletsch

I'm interested in moving some research prototypes from Xen to KVM, but there are a few esoteric features I'd need to do this.

First is an efficient mechanism for direct VM-to-VM sockets...something that bypasses the protocol stack and minimizes overhead. Xen has XenSocket, XenLoop, and others. I found a few mentions of this idea dating back to 2006*, mostly saying that a few people have done something like this as a one-off, but nothing official has been released. I haven't found anything like this more recently, though. Has there been any progress on this front? Ideally, I'd want a character device or a special program that acts as a fast pipe to a different VM.

Second, what about inter-VM shared memory?

Inter-VM shared memory (contributed by Cam, copied) is in the process of being merged. That includes a fast interguest interrupt mechanism (using irqfd), so you could easily layer a fast interguest pipe on top of that.

It's possible to do a dedicated guest-to-guest channel using virtio and a dma engine, but I'm not aware of any efforts in that direction.

Signature · 1 line
error compiling committee.c: too many arguments to function