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.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation

Details

Provenance
markjAuthored on Mar 1 2022, 4:48 PM
Parents
rGf27fb06cadc6: zfs: Update test format strings to match variable typtes
Branches
Unknown
Tags
Unknown