Subject: Re: curproc removal (NFS, ...)
To: None <jonathan@dsg.stanford.edu>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 01/07/2005 21:18:45
hi,

is there any progress on this topic?

> >>>How about KASSERT(uio->uio_segflag == UIO_USERSPACE), for externalize
> >>>ops in soreceive()?
> 
> Aside from the ugliness of the XXXX, this looks about right.
> 
> Also, consider the XXXX as declaring intent to remove the "#ifdef notdef"
> around the `if (p) p->p_statsp_ru->ru_msgrcv++', and to do so "soon".
> At which time the
> 
>    `if (mp0) p = NULL;'
> 
> will also die.  (If we do splice(2) or sendfile(2) using kconts to do
> soreceive() into an mbuf-chain pointer, from a softint-like context,
> we really should account the recieve()s against the process issuing
> the splice() or sendfile() syscall. And the only way to do that is to
> set uio->uio_procp to that process' struct proc *.)

i don't see why you don't want to add an explicit proc* argument to
soreceive while you did so for sosend.

btw,

uipc_socket.c 1.102:
> Also, now soreceive() uses
> its uio->uio_procp value, pass that same value downward to
> ((pr->pru_usrreq)() calls for consistency, instead of (struct proc * )0.

consistency with what?

YAMAMOTO Takashi