Am Tue, 16 May 2017 15:29:27 +0200 schrieb Claudio Scordino <clau...@evidence.eu.com>:
> Dear all, > > I have a few questions about the (current and next) inter-cell > communication mechanism. If you look into the archive you will find Mails from Jan describing the direction we want to go. The topic to look out for is called ivshmem2. > Currently, it provides a way for "discovering" the shared memory > addresses plus inter-cell interrupts. Yes, both implemented on top of PCI. > Apparently, there isn't any mutual exclusion mechanism on the data > itself, so an additional interrupt is needed if the sender needs to > know when data can be safely overwritten. Am I correct ? Yes, or the sender could read a value where the consumer publishes how much was consumed. Tricks like batching packets before sending interrupts etc. are also possible. You could have a look at vrings from virtio to get an idea what can be done on such a low-level channel. > I'd like to know if there is any plan for adding the following > features: > > - higher-level mechanisms (e.g. a message queue) for further > decoupling sending and receiving > - blocking semantics (i.e. spinning) for even faster communications > between cells Not likely. You can implement whatever you want on top of the basic channel. But you should not expect further support in the hypervisor, especially not for synchronous communication. > - support for ARM (still missing, if I'm not wrong) The inmate example is missing for ARM, but there is a thread where some people have ported it or parts of it. "Running ivshmem-demo in Jetson TK1." But there is a virtual NIC implementation that works on ARM. Start a host and a guest Linux and both will get a new "ethX" to talk to each other. I am not sure where to find documentation for using it, maybe here on the list. To play with it you basically need a non-root-linux setup. Next you need the driver in your host and guest kernel. (git://git.kiszka.org/linux.git queues/jailhouse-ivshmem2) Use that kernel or extract the c-file as external module. Then you need to setup an shmem-channel between the two cell and set the protocol to JAILHOUSE_SHMEM_PROTO_VETH. I suggest you start in Qemu x86 before moving to your real target. Henning > Many thanks and best regards, > > Claudio > -- Siemens AG Corporate Technology CT RDA ITP SES-DE Otto-Hahn-Ring 6 81739 Muenchen, Germany Mobile: +49 172 8378927 mailto: henning.sch...@siemens.com -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to jailhouse-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.