HomeFreeBSD

libc/libc/rpc: refactor some global variables

Description

libc/libc/rpc: refactor some global variables

  • Combine dg_fd_locks and dg_cv into one array.
  • Similarly for vc_fd_locks and vc_cv
  • Turn some macros into inline functions

This is a mostly cosmetic change to make refactoring these strutures in
a future commit easier.

Sponsored by: Axcient
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D42597

(cherry picked from commit a5c2f4e939430f0048136c39fb9fa6093d401905)

lib/libc/rpc: switch the per-fd structs in clnt_{dg,vc}.c to RB Trees

This saves oodles of memory, especially when "ulimit -n" is large. It
also prevents a buffer overflow if getrlimit should fail.

Also replace per-fd condvars with mutexes to simplify the code.

PR: 274968
Sponsored by: Axcient
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D42597

(cherry picked from commit 24938f9311c9c9acc1ce747f4e6a088c2dbc967d)

Details

Provenance
asomersAuthored on Nov 9 2023, 10:58 PM
Reviewer
kib
Differential Revision
D42597: libc/libc/rpc: refactor some global variables
Parents
rG895905635225: dnode_is_dirty: check dnode and its data for dirtiness
Branches
Unknown
Tags
Unknown