Hi,
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.
1. Why cannot we grab locks in a DRQ handler? 2. Where do we need to grab lock? 3. Why can extra IPI solve this problem?
Thank you very much. Best, Yuxin