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.
Adam