Hello !
I'm working on a new communication driver to speed-up communications between virtual machines sharing a some host system. I was wondering if there is a low-latency signaling mechanism that would allow a virtual machine (or the host) to signal another virtual machine (or the host) that an event has happened ? I'm not searching for a high-level communication mechanism such as sockets, I'm searching for a low-level, low-latency mechanism. Thank you for your help !!
Best Regards,
Elly
Intermachine signaling mechanism ?
-
scottgus1
- Site Moderator
- Posts: 20945
- Joined: 30. Dec 2009, 20:14
- Primary OS: MS Windows 10
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Windows, Linux
Re: Intermachine signaling mechanism ?
The only low-latency system I know is a network. You can have more than one network in a guest (4 in the main Virtualbox window, up to 8 or 36 depending on virtual chipset via Vboxmanage commands), and one of the networks can be an internal heartbeat network. If you want the host PC to be in on the heartbeat, use a Host-Only instead of an Internal network.
There is a watchdog service that is supposed to test if a host PC 'cannot reach a Virtualbox guest anymore' (whatever that means, see the manual, section 9.22, ignore the memory-ballooning stuff) and do something to the 'missing' guest. I don't know if that comes anywhere close to what you want.
Finally, if you can put Guest Additions in the guest, there's 'VBoxManage getextradata/setextradata' in the host, and 'VBoxControl getextradata/setextradata' in the guest. (manual, section 8.29). This is a string-passing system; it requires a script to either set the desired data or to poll the results of getting the data to see what has happened. It can be rather high latency, though, depending on your script looping times.
There is a watchdog service that is supposed to test if a host PC 'cannot reach a Virtualbox guest anymore' (whatever that means, see the manual, section 9.22, ignore the memory-ballooning stuff) and do something to the 'missing' guest. I don't know if that comes anywhere close to what you want.
Finally, if you can put Guest Additions in the guest, there's 'VBoxManage getextradata/setextradata' in the host, and 'VBoxControl getextradata/setextradata' in the guest. (manual, section 8.29). This is a string-passing system; it requires a script to either set the desired data or to poll the results of getting the data to see what has happened. It can be rather high latency, though, depending on your script looping times.
Re: Intermachine signaling mechanism ?
Thank you for this answer, I'll look at these mechanisms !