Skip to content

Conversation

@yanglimingcn
Copy link
Contributor

What problem does this PR solve?

Issue Number:

Problem Summary:

In RDMA polling mode, all messages must be executed in a new bthread and
not in the bthread where the polling bthread is located, because the
method for processing messages may call synchronization primitives,
causing the polling bthread to be scheduled out.

What is changed and the side effects?

Changed:

Side effects:

  • Performance effects:

  • Breaking backward compatibility:


Check List:

@wwbmmm
Copy link
Contributor

wwbmmm commented Oct 13, 2025

If the method for processing messages don't have synchronization primitives, running in the polling bthread is ok?
Will this PR affect performance?

@yanglimingcn
Copy link
Contributor Author

yanglimingcn commented Oct 13, 2025

If the method for processing messages don't have synchronization primitives, running in the polling bthread is ok? Will this PR affect performance?

yes,for example the method just change a variable. this just use in rdma polling mode and it is unavoidable. we don't know user's logic.
If the user confirms that synchronization primitives will not be called, set rdma_disable_bthread flag to true, all message process will be run in the polling thread.
summary:
1、in non-polling mode, socket will process in a new bthread(bthread_start_urgent) and last message will process in this bthread, other message will start new bthreads.
2、in polling-mode, socket will process in polling bthread, and all message will start bthreads.

Copy link
Contributor

@chenBright chenBright left a comment

Choose a reason for hiding this comment

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

LGTM

@yanglimingcn yanglimingcn merged commit 8ef24ba into apache:master Oct 27, 2025
16 checks passed
@yanglimingcn yanglimingcn deleted the feature/rdma_polling_queue_all_messages branch October 27, 2025 13:54
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.

3 participants