diff options
author | Alexey Dobriyan <adobriyan@sw.ru> | 2007-10-19 02:41:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-19 14:53:56 -0400 |
commit | a39bc51691a0c8880b7d10fa7c2f034f3ba9a037 (patch) | |
tree | 6f74815a32b5344cbfc2b3eca6def411308c06fb /kernel/fork.c | |
parent | a24efe62dd165be7d03431cf936ae17d345fed69 (diff) |
Uninline fork.c/exit.c
Save ~650 bytes here.
add/remove: 4/0 grow/shrink: 0/7 up/down: 430/-1088 (-658)
function old new delta
__copy_fs_struct - 202 +202
__put_fs_struct - 112 +112
__exit_fs - 58 +58
__exit_files - 58 +58
exit_files 58 2 -56
put_fs_struct 112 5 -107
exit_fs 161 2 -159
sys_unshare 774 590 -184
copy_process 4031 3840 -191
do_exit 1791 1597 -194
copy_fs_struct 202 5 -197
No difference in lmbench lat_proc tests on 2-way Opteron 246.
Smaaaal degradation on UP P4 (within errors).
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 43958d41e65a..ddafdfac9456 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -206,7 +206,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) | |||
206 | } | 206 | } |
207 | 207 | ||
208 | #ifdef CONFIG_MMU | 208 | #ifdef CONFIG_MMU |
209 | static inline int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | 209 | static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) |
210 | { | 210 | { |
211 | struct vm_area_struct *mpnt, *tmp, **pprev; | 211 | struct vm_area_struct *mpnt, *tmp, **pprev; |
212 | struct rb_node **rb_link, *rb_parent; | 212 | struct rb_node **rb_link, *rb_parent; |
@@ -584,7 +584,7 @@ fail_nomem: | |||
584 | return retval; | 584 | return retval; |
585 | } | 585 | } |
586 | 586 | ||
587 | static inline struct fs_struct *__copy_fs_struct(struct fs_struct *old) | 587 | static struct fs_struct *__copy_fs_struct(struct fs_struct *old) |
588 | { | 588 | { |
589 | struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL); | 589 | struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL); |
590 | /* We don't need to lock fs - think why ;-) */ | 590 | /* We don't need to lock fs - think why ;-) */ |
@@ -616,7 +616,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old) | |||
616 | 616 | ||
617 | EXPORT_SYMBOL_GPL(copy_fs_struct); | 617 | EXPORT_SYMBOL_GPL(copy_fs_struct); |
618 | 618 | ||
619 | static inline int copy_fs(unsigned long clone_flags, struct task_struct * tsk) | 619 | static int copy_fs(unsigned long clone_flags, struct task_struct *tsk) |
620 | { | 620 | { |
621 | if (clone_flags & CLONE_FS) { | 621 | if (clone_flags & CLONE_FS) { |
622 | atomic_inc(¤t->fs->count); | 622 | atomic_inc(¤t->fs->count); |
@@ -819,7 +819,7 @@ int unshare_files(void) | |||
819 | 819 | ||
820 | EXPORT_SYMBOL(unshare_files); | 820 | EXPORT_SYMBOL(unshare_files); |
821 | 821 | ||
822 | static inline int copy_sighand(unsigned long clone_flags, struct task_struct * tsk) | 822 | static int copy_sighand(unsigned long clone_flags, struct task_struct *tsk) |
823 | { | 823 | { |
824 | struct sighand_struct *sig; | 824 | struct sighand_struct *sig; |
825 | 825 | ||
@@ -842,7 +842,7 @@ void __cleanup_sighand(struct sighand_struct *sighand) | |||
842 | kmem_cache_free(sighand_cachep, sighand); | 842 | kmem_cache_free(sighand_cachep, sighand); |
843 | } | 843 | } |
844 | 844 | ||
845 | static inline int copy_signal(unsigned long clone_flags, struct task_struct * tsk) | 845 | static int copy_signal(unsigned long clone_flags, struct task_struct *tsk) |
846 | { | 846 | { |
847 | struct signal_struct *sig; | 847 | struct signal_struct *sig; |
848 | int ret; | 848 | int ret; |
@@ -924,7 +924,7 @@ void __cleanup_signal(struct signal_struct *sig) | |||
924 | kmem_cache_free(signal_cachep, sig); | 924 | kmem_cache_free(signal_cachep, sig); |
925 | } | 925 | } |
926 | 926 | ||
927 | static inline void cleanup_signal(struct task_struct *tsk) | 927 | static void cleanup_signal(struct task_struct *tsk) |
928 | { | 928 | { |
929 | struct signal_struct *sig = tsk->signal; | 929 | struct signal_struct *sig = tsk->signal; |
930 | 930 | ||
@@ -934,7 +934,7 @@ static inline void cleanup_signal(struct task_struct *tsk) | |||
934 | __cleanup_signal(sig); | 934 | __cleanup_signal(sig); |
935 | } | 935 | } |
936 | 936 | ||
937 | static inline void copy_flags(unsigned long clone_flags, struct task_struct *p) | 937 | static void copy_flags(unsigned long clone_flags, struct task_struct *p) |
938 | { | 938 | { |
939 | unsigned long new_flags = p->flags; | 939 | unsigned long new_flags = p->flags; |
940 | 940 | ||
@@ -953,7 +953,7 @@ asmlinkage long sys_set_tid_address(int __user *tidptr) | |||
953 | return task_pid_vnr(current); | 953 | return task_pid_vnr(current); |
954 | } | 954 | } |
955 | 955 | ||
956 | static inline void rt_mutex_init_task(struct task_struct *p) | 956 | static void rt_mutex_init_task(struct task_struct *p) |
957 | { | 957 | { |
958 | spin_lock_init(&p->pi_lock); | 958 | spin_lock_init(&p->pi_lock); |
959 | #ifdef CONFIG_RT_MUTEXES | 959 | #ifdef CONFIG_RT_MUTEXES |
@@ -1385,7 +1385,7 @@ struct task_struct * __cpuinit fork_idle(int cpu) | |||
1385 | return task; | 1385 | return task; |
1386 | } | 1386 | } |
1387 | 1387 | ||
1388 | static inline int fork_traceflag (unsigned clone_flags) | 1388 | static int fork_traceflag(unsigned clone_flags) |
1389 | { | 1389 | { |
1390 | if (clone_flags & CLONE_UNTRACED) | 1390 | if (clone_flags & CLONE_UNTRACED) |
1391 | return 0; | 1391 | return 0; |
@@ -1521,7 +1521,7 @@ void __init proc_caches_init(void) | |||
1521 | * Check constraints on flags passed to the unshare system call and | 1521 | * Check constraints on flags passed to the unshare system call and |
1522 | * force unsharing of additional process context as appropriate. | 1522 | * force unsharing of additional process context as appropriate. |
1523 | */ | 1523 | */ |
1524 | static inline void check_unshare_flags(unsigned long *flags_ptr) | 1524 | static void check_unshare_flags(unsigned long *flags_ptr) |
1525 | { | 1525 | { |
1526 | /* | 1526 | /* |
1527 | * If unsharing a thread from a thread group, must also | 1527 | * If unsharing a thread from a thread group, must also |