ROCm / ROCm/hipObject

[Question] RC QP state machine client side question

Open
#42 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C++
Stars
9
Forks
1
Avg merge
1d 9h
Merged PRs (30d)
7

Description

A vendor asks:

I'm trying to understand the RC QP state machine on the client side. I see that finishTransferAfterReply() calls connectRcPeer() which moves the QP to RTR and then to RTS. Does it mean that the QP is ready for RDMA ops only after the S3 reply is received? If yes, I don't understand the PUT/GET object flow:

  1. The client's QP is in INIT state.
  2. The client sends a PUT (or GET) object to the server.
  3. The server sends an S3 response with a token. At this point, the server is still unable to run RDMA ops (because we're still in the INIT state).
  4. The client gets the response, calls finishTransferAfterReply() and only then the server can run RDMA read, but this is too late.

If my assumptions so far are OK, what will happen during the next S3 request? At this point, the QP is already connected.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing finishTransferAfterReply() and connectRcPeer(), then follow the PUT/GET object flow and the RC QP transitions from INIT through RTR and RTS. Verify when the S3 reply and token are handled, when the server performs RDMA operations, and how a subsequent S3 request behaves with an already-connected QP. Done means the state-machine timing and next-request behavior are clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.