linuxthreads uses the ldt to identify the threads in a process. This results in a modify_ldt call, which causes a 64kB vmalloc call, for every process that is linked against libpthread. vmalloc space is often tight, which limits the number of processes that can run concurrently. I remember one report of failures with 80 users on a multiuser kde x-server. The attached patch changes the ldt allocation to try to use kmalloc if possible, and to limit the initial allocation size to 2 kB. Additionally, the patch adds proper failure returns. The curent code just prinkt's the error and continues the fork() syscall [and silently drops the ldt]. 2.6 contains a similar patch, and it was (is?) in several distro and ac kernels. Marcelo, could you add it to your tree? -- Manfred