HomeFreeBSD

proc: Relax proc_rwmem()'s assertion on the process hold count

Description

proc: Relax proc_rwmem()'s assertion on the process hold count

This reference ensures that the process and its associated vmspace will
not be destroyed while proc_rwmem() is executing. If, however, the
calling thread belongs to the target process, then it is unnecessary to
hold the process. In particular, fasttrap - a module which enables
userspace dtrace - may frequently call proc_rwmem(), and we'd prefer to
avoid the overhead of locking and bumping the hold count when possible.

Thus, make the assertion conditional on "p != curproc". Also assert
that the process is not already exiting. No functional change intended.

Sponsored by: The FreeBSD Foundation

(cherry picked from commit 12fb39ec3e6bc529feff3ba2862c6a4a30bd54eb)

Details

Provenance
markjAuthored on Mar 1 2022, 4:48 PM
Parents
rGd271eca03f03: libpfct: factor out pfctl_get_rules_info()
Branches
Unknown
Tags
Unknown