Data transfer mechanisms

Lluís Vilanova vilanova at ac.upc.edu
Sun Aug 18 20:33:52 CEST 2013


Adam Lackorzynski writes:

> Hi,
> On Sun Aug 11, 2013 at 20:10:29 +0300, Lluís Vilanova wrote:
>> I'd like to compare the performance of two different synchronous data transfer
>> mechanisms:
>> 
>> * Copies
>> * Page maps / unmaps
>> 
>> For the second one, it looks like I can use the streammap example
>> (pkg/examples/libs/l4re/streammap), although I'm lacking a mechanism to unmap
>> the page before returning control to the client.

> There's an unmap syscall:
>   l4_task_unmap(L4RE_THIS_TASK_CAP, l4_fpage(page_to_map, 12, L4_FPAGE_RWX),
>                 L4_FP_OTHER_SPACES);

>> It would also be nice to be
>> able to pass the server a read-only region.

> The server? Anyway, there are rights parameters.

>> For the first one, I've only found the use of multiple send/recv operations
>> through the limited amount of data available on the message registers. There is
>> a "Gen_string" class in the "ipc_stream" header, which looks like it could
>> support offline string transfers, but it's disabled at compile time and I could
>> not find the actual code in fiasco that handles these transfers.

> That's gone. The kernel only copies what's in the MRs.

Thanks a lot for your help. In the end, I got the remapping working following
the example in "examples/libs/l4re/c++/shared_ds".

BTW, there's a file in the fiasco directory regarding benchmarking results. What
kind of information is to be sent?


Thanks,
  Lluis

-- 
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom
 Tollbooth




More information about the l4-hackers mailing list