Page MenuHomeFreeBSD

rpc: limited multithread support for svc_nl
Needs ReviewPublic

Authored by glebius on Mon, Jan 20, 9:13 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jan 20, 10:42 PM
Unknown Object (File)
Mon, Jan 20, 10:07 PM
Subscribers

Details

Reviewers
rmacklem
Group Reviewers
network
Summary

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.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 61846
Build 58730: arc lint + arc unit