[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 16:36, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
> 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.

Iâve now implemented these and got vchan working cross-process.

When Iâve finished the refactor it should be possible to run netfront/netback 
between processes which should increase their debug-ability. A slight snag is 
that we havenât got an implementation of netback yet, but it shouldnât be 
difficult to create. Once we have both front and back we can also have some 
nice tests in the repo and run them from travis.


> 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 
> example.
>> - 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 :)
> Anil

MirageOS-devel mailing list



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