New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
msg/async/rdma: destroy QueuePair if needed #13810
Conversation
Signed-off-by: Haomai Wang <haomai@xsky.com>
@yuyuyu101 |
Mutex::Locker l(lock); // FIXME reuse dead qp because creating one qp costs 1 ms | ||
while (!dead_queue_pairs.empty()) { | ||
ldout(cct, 10) << __func__ << " finally delete qp=" << dead_queue_pairs.back() << dendl; | ||
delete dead_queue_pairs.back(); | ||
perf_logger->dec(l_msgr_rdma_active_queue_pair); | ||
dead_queue_pairs.pop_back(); | ||
--num_dead_queue_pair; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we might want to move this to ~QueuePair() to cover other cases of deleting qp's
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, we only trace in queue qp..
@@ -202,13 +203,14 @@ void RDMADispatcher::polling() | |||
// Additionally, don't delete qp while outstanding_buffers isn't empty, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since we don't check inflight value, is this still true?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, we don't need to care inflight tx messages
|
@yuyuyu101 have you seen this ? |
@yuyuyu101
|
Couldn't replicate the crash. Regardless, the qp leak from #13435 is resolved. |
Signed-off-by: Haomai Wang haomai@xsky.com