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.

Reply via email to