Re: Slow pthread_create() under high load

From: Stephen C. Tweedie (sct@redhat.com)
Date: Tue Mar 28 2000 - 11:52:24 EST


Hi,

On Mon, Mar 27, 2000 at 02:16:08PM +0200, Joerg Pommnitz wrote:
>
> > Maybe, but although a lot of the POSIX threads are reasonable, things
> > like requiring uid/gid updates to be instantly effective across all
> > threads in the process are just insane. There ain't no way that's
> > going into the kernel any time soon: it would require adding
> semaphore
> > locking to all of the credential information that is currently task-
> > local.
>
> Isn't this more the case of a missing "CLONE_CREDENTIALS" flag?

No. That's the whole point: we have per-task credentials. If we
went instead to have per-process credentials, with credentials shared
amongst all tasks, then every syscall which uses permissions would
have to lock the credentials structure while it is running, or risk
having credentials changing in the middle of a syscall. That's why
CLONE_CREDENTIALS would have to add a bucket of extra, slow, locking
all over the kernel. No thanks, if it can be done in user space
(which it can, albeit not very efficiently when we do a process-wide
setreuid).

> If POSIX specifies that credential are shared among threads
> (similiar to VM, files,...) and Linux does not do this, than
> it's not the specification that is broken but Linux' implementation
> of the same...

No, because Linux has never claimed to implement that bit of POSIX.
It implements something much more sane instead.

--Stephen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:22 EST