The rpc(3) itself was not designed with multithreading in mind, but we can
actually achieve some parallelism without modifying the library and the
framework. This transport will allow to process RPCs in threads, with
some hacks on the application side (documented in code). We make
reentrable only one method - SVC_REPLY(). Reading and parsing of incoming
calls is still done synchronously. But the actual processing of the calls
can be offloaded to a thread, and once finished the thread can safely
execute SVC_REPLY() and the reply would be sent with the correct xid.
Details
Details
- Reviewers
rmacklem - Group Reviewers
network - Commits
- rGc62ae124cc78: rpc: limited multithread support for svc_nl
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 61842 Build 58726: arc lint + arc unit
Event Timeline
Comment Actions
Update with respect to committed changes and snl(3) as well as unstacked
changes to snl(3).