On Tue Jun 24, 2014 at 15:43:06 -0400, Yuxin Ren wrote:I'm not fluent in this part but I'll try.
> When I go through the IPC code, I have some questions about dqr handler.
> In the remote_ipc_send function within the thread-ipc.cpp file, I find a
> comment
>
> " // trigger remote_ipc_receiver_ready path, because we may need to grab
> locks
> // and this is forbidden in a DRQ handler. So transfer the IPC in usual
> // thread code. However, this induces a overhead of two extra IPIs."
>
> I have some questions about this comment.
Because those handlers must not block.
> 1. Why cannot we grab locks in a DRQ handler?
When the IPC does transfer some items processing those might require to
> 2. Where do we need to grab lock?
take locks, for example, when mapping pages. Will not happen for simple
data-only IPCs.
Because in this case the receiver will handle the IPC instead of the
> 3. Why can extra IPI solve this problem?
sender and the IPIs are there for telling the receiver about that.
Adam
--
Adam adam@os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers