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