Skip to content

Fix nsdperf RDMA async poll rebuild#18

Open
Brian-Hwang wants to merge 1 commit into
IBM:masterfrom
Brian-Hwang:bhwang/STL-77130-nsdperf-async-poll-rebuild
Open

Fix nsdperf RDMA async poll rebuild#18
Brian-Hwang wants to merge 1 commit into
IBM:masterfrom
Brian-Hwang:bhwang/STL-77130-nsdperf-async-poll-rebuild

Conversation

@Brian-Hwang
Copy link
Copy Markdown

RdmaAsync::threadBody() rebuilt its poll lists whenever rdmaDevTab.size() differed from lastDevCount, but never updated lastDevCount and never cleared the existing lists before appending. Duplicate nonblocking async FDs could accumulate, so a repeated CLIENT_REREGISTER event could cause a second ibv_get_async_event() call on an already-drained event, returning EAGAIN and terminating nsdperf.

Clear the RDMA device and pollfd lists before repopulating them and record the device count after rebuilding.

RdmaAsync::threadBody() rebuilt its poll lists whenever rdmaDevTab.size() differed from lastDevCount, but never updated lastDevCount and never cleared the existing lists before appending. Duplicate nonblocking async FDs could accumulate, so a repeated CLIENT_REREGISTER event could cause a second ibv_get_async_event() call on an already-drained event, returning EAGAIN and terminating nsdperf.

Clear the RDMA device and pollfd lists before repopulating them and record the device count after rebuilding.

Signed-off-by: Brian-Hwang <brian.hwang@cornelisnetworks.com>
@Brian-Hwang Brian-Hwang force-pushed the bhwang/STL-77130-nsdperf-async-poll-rebuild branch from 11e3bb8 to ee94474 Compare May 28, 2026 14:02
Copy link
Copy Markdown

@ddalessa ddalessa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Can someone from IBM take a look and approve/merge this if they agree?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants