Subject: curproc removal (NFS, ...)
To: None <tech-kern@netbsd.org>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: tech-kern
Date: 05/24/2004 19:00:26
Hi -
I'm getting tons of kernel warnings now on a -current diskless box:
nfs_send: proc botch: rep 0x0 arg 0x0 curproc 0xc71dc1d0
nfs_send: proc botch: rep 0x0 arg 0x0 curproc 0xc71dc008
nfs_send: proc botch: rep 0x0 arg 0x0 curproc 0xc7e068f4
[...]

Looking at the reason I've found 3 NFS calls for now which pass
a 0 proc* down:
-the asynchronous readahead (nfssvc_iod)
-the sillyrename stuff (nfs_removeit)
-readlink

This appears easily fixed, but it is not obvious what the
proc pointer is used for in every case. This might be:
-scheduling (ultimatively to be passed to ltsleep())
-access rights
-accounting
-address space for virtual addresses

At least in the readahead and the sillyrename case the
original owner is different from the current process.
So the "scheduling" use of the proc should be separated
from the other uses. (Actually, a "lwp" pointer should be
passed for this anyway.)

So, what is the plan behind this? Can this be documented more
explicitely?

best regards
Matthias