Many functions in the kernel take a "struct proc *" as argument.  When
reviewing diffs or reading the signature of such functions it is not
clear if this pointer can be any thread or if it is, like in many cases,
pointing to `curproc'.

This distinction matters when it comes to reading/writing members of
this "struct proc" and that's why a growing number of functions start
with the following idiom:

        KASSERT(p == curproc);

This is verbose and redundant, so I suggested to always use `curproc'
and stop passing a "struct proc *" as argument when a function isn't
meant to modify any thread.  claudio@ raised a concern of performance
claiming that `curproc' isn't always cheap.  Is it still true?  Does
the KASSERT()s make us pay the cost anyhow?

If that's the case can we adopt a convention to help review functions
that take a "struct proc *" but only mean `curproc'?  What about naming
this parameter `curp' instead of `p'?

Reply via email to