Page MenuHomeFreeBSD

rpc.tlsservd: provide parallelism with help of pthread(3)
Needs ReviewPublic

Authored by glebius on Mon, Jan 20, 9:14 PM.
Tags
None
Referenced Files
F108168795: D48570.id.diff
Wed, Jan 22, 4:03 AM
F108157484: D48570.diff
Wed, Jan 22, 12:07 AM
Unknown Object (File)
Tue, Jan 21, 12:36 AM
Unknown Object (File)
Mon, Jan 20, 10:03 PM
Subscribers

Details

Reviewers
rmacklem
Group Reviewers
network
Summary

At normal NFS server runtime there is not much RPC traffic from kernel to
rpc.tlsservd. But as Rick rmacklem@ explained, the notion of multiple
workers exists to handle a situation when a server reboots and it has
several hundred or thousands of TLS/TCP connections from clients. Once it
comes back up, all the clients make TCP connections and do TLS handshakes.

So cleanup the remnants of the workers, that left after the conversion of
RPC over netlink(4) transport and restore desired parallelism with help of
pthread(3).

We are processing the TLS handshakes in separate threads, one per
handshake. This is a minimal implementation: we aren't keeping a pool of
threads, neither pre-allocating them, nor limiting their count. This
should be sufficient to dynamically size thread count. This might be
redesigned later.

Diff Detail

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