Question abut DRQ handler

Yuxin Ren ryx at gwmail.gwu.edu
Fri Jun 27 16:21:38 CEST 2014


Thank you very much.
I have a further question.
For simple data-only IPCs, do we still need 4 IPIs?


On Thu, Jun 26, 2014 at 4:38 PM, Adam Lackorzynski <
adam at os.inf.tu-dresden.de> wrote:

> On Tue Jun 24, 2014 at 15:43:06 -0400, Yuxin Ren wrote:
> > 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.
>
> I'm not fluent in this part but I'll try.
>
> > 1. Why cannot we grab locks in a DRQ handler?
>
> Because those handlers must not block.
>
> > 2. Where do we need to grab lock?
>
> When the IPC does transfer some items processing those might require to
> take locks, for example, when mapping pages. Will not happen for simple
> data-only IPCs.
>
> > 3. Why can extra IPI solve this problem?
>
> Because in this case the receiver will handle the IPC instead of the
> sender and the IPIs are there for telling the receiver about that.
>
>
>
> Adam
> --
> Adam                 adam at os.inf.tu-dresden.de
>   Lackorzynski         http://os.inf.tu-dresden.de/~adam/
>
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140627/1a7f52f8/attachment.html>


More information about the l4-hackers mailing list