On Mon, Jan 19, 2009 at 01:39:02PM -0800, Garrett D'Amore wrote: > Jeffrey Hutzelman wrote: > >--On Friday, January 16, 2009 05:43:24 PM -0600 Nicolas Williams > ><Nicolas.Williams at sun.com> wrote: > > > >>Even if you remove pagsh, you must be creating new PAGs when users > >>login. Login is a user-land-driven process, and I don't see a clean way > >>for the kernel to glean "create new PAG now" from the other system calls > >>called during the login process. Therefore we need at the very least a > >>"create new PAG" system call. > > > >AFS already has such a system call, and so doesn't need a generic one. > >If you want to have PAM modules and/or command-line utilities do this > >for specific non-AFS use cases, then yes, you'd need a system call. > >If you want login to do this automatically for every use case, then > >you need a system call which does that, or you need to enumerate all > >of them in user space. > If you have a kernel driver that has a device node, you can get away > with ioctl() and don't need a new system call. That's how I'd do it for > audio, anyway.
What we want with audio is best likened to controlling ttys. As with controlling ttys we'll want the task of creating a session to be explicit -- as in setsid(2). The task of associating an audio device as the controlling device for such a group of processes can be implicit, just as with ttys (where the first tty opened after creating a new session becomes the controlling tty). I don't think it's a good idea to use ioctl()s for creating process groups of any kind. Device drivers, in any case, shouldn't be doing such things. As for associating a controlling device with some such process group -- if the association through cred_t and indirect (i.e., without having to modify cred_t), then I think it's quite kosher. Nico --