[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Parallelizing writing to network devices

On 28 Nov 2014, at 11:38, Dave Scott <Dave.Scott@xxxxxxxxxx> wrote:
> As an aside, Iâm in the middle of functorising the ring code to make it more 
> like Vchan. In particular youâll be able to instantiate the functor with any 
> suitable memory sharing and event signalling primitives. This means weâll be 
> able to run the code in several different environments
> - in-process where memory sharing is trivial and event signalling uses 
> Lwt_condition.t. This is good for unit-tests
> - cross-process under Unix where memory sharing is via something like 
> /dev/shm and signalling via eventfd or pipes? (Suggestions welcome)

I'd suggest starting off with core POSIX interfaces such as a pipe for 
synchronisation and Bigarray.map_file for shared memory.

Eventfd and /dev/shm are Linux-isms that we can add later by cherry picking 
ring APIs from the IPC bench repository: https://github.com/avsm/ipc-bench.  
There are blindingly fast protocols in there if spinning is an option, for 

> - as a Xen backend/frontend under Linux where memory sharing is via 
> gntdev/gntshr and events are via /dev/xen/evtchn
> - under Xen as normal
> I really want to be able to run 2 utop shells, #require the code, instantiate 
> the functor for Unix and have Xen netfront/netback between regular processes 
> under OS X.

All those words sound good to me :)

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.