kernel_optimize_test/arch/um/kernel
Oleg Nesterov 73b9ebfe12 [PATCH] pidhash: don't count idle threads
fork_idle() does unhash_process() just after copy_process().  Contrary,
boot_cpu's idle thread explicitely registers itself for each pid_type with nr
= 0.

copy_process() already checks p->pid != 0 before process_counts++, I think we
can just skip attach_pid() calls and job control inits for idle threads and
kill unhash_process().  We don't need to cleanup ->proc_dentry in fork_idle()
because with this patch idle threads are never hashed in
kernel/pid.c:pid_hash[].

We don't need to hash pid == 0 in pidmap_init().  free_pidmap() is never
called with pid == 0 arg, so it will never be reused.  So it is still possible
to use pid == 0 in any PIDTYPE_xxx namespace from kernel/pid.c's POV.

However with this patch we don't hash pid == 0 for PIDTYPE_PID case.  We still
have have PIDTYPE_PGID/PIDTYPE_SID entries with pid == 0: /sbin/init and
kernel threads which don't call daemonize().

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-28 18:36:41 -08:00
..
skas [PATCH] uml: remove a dead file 2006-02-07 16:12:32 -08:00
tt [PATCH] uml: TT - SYSCALL_DEBUG - fix buglet introduced in cleanup 2006-02-01 08:53:22 -08:00
asm-offsets.c [PATCH] uml: fix missing KBUILD_BASENAME 2006-01-11 18:42:09 -08:00
config.c.in Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dyn.lds.S [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
exec_kern.c [PATCH] uml: move tty logging to os-Linux 2006-03-27 08:44:38 -08:00
exitcode.c [PATCH] uml: Clean up prink calls 2005-07-28 21:46:05 -07:00
gmon_syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gprof_syms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
init_task.c [PATCH] uml: move libc code out of mem_user.c and tempfile.c 2005-09-17 11:50:00 -07:00
initrd.c [PATCH] uml: initrd cleanup 2005-05-20 15:48:18 -07:00
irq.c [PATCH] uml: merge irq_user.c and irq.c 2006-03-27 08:44:37 -08:00
ksyms.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
Makefile [PATCH] uml: move tty logging to os-Linux 2006-03-27 08:44:38 -08:00
mem.c [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
physmem.c [PATCH] unify PFN_* macros 2006-03-27 08:44:48 -08:00
process_kern.c [PATCH] uml: avoid malloc to sleep in atomic sections 2006-01-18 19:20:21 -08:00
ptrace.c [PATCH] consolidate sys_ptrace() 2005-11-07 07:53:42 -08:00
reboot.c [PATCH] uml: avoid "CONFIG_NR_CPUS undeclared" bogus error messages 2006-02-01 08:53:23 -08:00
resource.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigio_kern.c [PATCH] uml: move SIGIO startup code to os-Linux/start_up.c 2006-03-27 08:44:38 -08:00
signal_kern.c [PATCH] uml: use generic sys_rt_sigsuspend 2006-01-18 19:20:30 -08:00
smp.c [PATCH] pidhash: don't count idle threads 2006-03-28 18:36:41 -08:00
syscall_kern.c [PATCH] uml: fork cleanup 2005-06-25 16:24:35 -07:00
syscall.c [PATCH] uml: move libc-dependent time code 2006-01-18 19:20:19 -08:00
sysrq.c [PATCH] uml: Fix sysrq-r support for skas mode 2005-10-04 13:22:01 -07:00
time_kern.c [PATCH] uml: TT mode softint fixes 2006-01-18 19:20:20 -08:00
time.c [PATCH] hrtimer: convert posix timers completely 2006-01-10 08:01:39 -08:00
tlb.c [PATCH] uml: fix condition in tlb flush 2005-09-22 22:17:36 -07:00
trap_kern.c [PATCH] uml: merge trap_user.c and trap_kern.c 2006-01-08 20:13:39 -08:00
uaccess.c [PATCH] uml: separate libc-dependent uaccess code 2005-11-07 07:53:31 -08:00
um_arch.c [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
umid.c [PATCH] uml: umid cleanup 2006-01-06 08:33:47 -08:00
uml.lds.S [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
vmlinux.lds.S [PATCH] uml: include the linker script rather than symlink it 2005-05-05 16:36:33 -07:00