Data transfer mechanisms

Lluís Vilanova vilanova at
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?


 "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

More information about the l4-hackers mailing list