chenBright commented on issue #3132:
URL: https://github.com/apache/brpc/issues/3132#issuecomment-3546290304

   > 由对端应用层发送立即数 ACK 来通知本端 poll cq, 每 1/4 窗口发送一个 signaled + solicited 的 wr, 
对端收到 1/4 窗口个的消息后给本端发一个signaled + solicited wr 作为 ACK 通知本端 poll cq。当本端 poll 到 
IBV_SEND_SIGNALED wr 产生的 CQE 后可以认为驱动层面释放掉了 1/4 窗口的 SQE。
   
   我理解也有这个问题吧
   
   > 由于以太网的问题send cqe一直在延迟生成,所以这个过程中一直没有poll到send 
cqe(按照目前brpc的默认配置,这个过程可能有四次或者两次event触发poll_cq,但在这个过程中send cqe的生成都被延迟了)。
   最后当本端的sq应用层窗口消耗完毕,对端无法再回复,本端也无法再进入poll_cq了;最终导致超时。
   
   当前实现得抢到`_new_rq_wrs`,才会发送立即数ACK。发送立即数ACK和发送消息时ACK是并发竞争的,`对端收到 1/4 
窗口个的消息后给本端发一个signaled + solicited wr 作为 ACK 通知本端 poll cq`,看下来不好实现。


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to