Hello, I have question about seL4 IPC fastpath.
I ran sel4bench on sabre lite(arm v7).
1. IPC fastpath can apply in seL4_Call and seL4_Reply_Recv, is it right? seL4_Send, seL4_Recv can't apply IPC fastpath.
2. IPC_fastpath can only send message that message's length is 0, is it right? I found these comments. /* Call slowpath, long IPC (10), same prio client to server, different address space */ /* ReplyRecv slowpath, long IPC (10), same prio server to client, on the slowpath, different address space */
3. In seL4 IPC mechanism, IPC only use registers not memory?
Hi,
- IPC fastpath can apply in seL4_Call and seL4_Reply_Recv, is it right?
seL4_Send, seL4_Recv can't apply IPC fastpath.
Yes. We could add fastpaths for other paths if required but they do not currently exist.
- IPC_fastpath can only send message that message's length is 0, is it right?
No. The IPC fastpath can only send messages that fit into registers. The constant `seL4_FastMessageRegisters` defines this value for all platforms (usually 4, except for ia32).
- In seL4 IPC mechanism, IPC only use registers not memory?
No. IPC messages > seL4_FastMessageRegisters is transferred via the IPC buffer in memory.
?Cheers, Anna.
On 8 Oct 2018, at 09:23, Anna.Lyons@data61.csiro.aumailto:Anna.Lyons@data61.csiro.au wrote:
- IPC fastpath can apply in seL4_Call and seL4_Reply_Recv, is it right?
seL4_Send, seL4_Recv can't apply IPC fastpath.
Yes. We could add fastpaths for other paths if required but they do not currently exist.
which would only happen if there was a convincing use case, which I haven’t seen yet. seL4_Send and seL4_Recv are meant to be used for setting up connections, not for performance-critical stuff.
Gernot