提交 a39bc516 编写于 作者: A Alexey Dobriyan 提交者: Linus Torvalds

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: NAlexey Dobriyan <adobriyan@sw.ru>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 a24efe62
...@@ -493,7 +493,7 @@ void reset_files_struct(struct task_struct *tsk, struct files_struct *files) ...@@ -493,7 +493,7 @@ void reset_files_struct(struct task_struct *tsk, struct files_struct *files)
} }
EXPORT_SYMBOL(reset_files_struct); EXPORT_SYMBOL(reset_files_struct);
static inline void __exit_files(struct task_struct *tsk) static void __exit_files(struct task_struct *tsk)
{ {
struct files_struct * files = tsk->files; struct files_struct * files = tsk->files;
...@@ -510,7 +510,7 @@ void exit_files(struct task_struct *tsk) ...@@ -510,7 +510,7 @@ void exit_files(struct task_struct *tsk)
__exit_files(tsk); __exit_files(tsk);
} }
static inline void __put_fs_struct(struct fs_struct *fs) static void __put_fs_struct(struct fs_struct *fs)
{ {
/* No need to hold fs->lock if we are killing it */ /* No need to hold fs->lock if we are killing it */
if (atomic_dec_and_test(&fs->count)) { if (atomic_dec_and_test(&fs->count)) {
...@@ -531,7 +531,7 @@ void put_fs_struct(struct fs_struct *fs) ...@@ -531,7 +531,7 @@ void put_fs_struct(struct fs_struct *fs)
__put_fs_struct(fs); __put_fs_struct(fs);
} }
static inline void __exit_fs(struct task_struct *tsk) static void __exit_fs(struct task_struct *tsk)
{ {
struct fs_struct * fs = tsk->fs; struct fs_struct * fs = tsk->fs;
......
...@@ -206,7 +206,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) ...@@ -206,7 +206,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
} }
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
static inline int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
{ {
struct vm_area_struct *mpnt, *tmp, **pprev; struct vm_area_struct *mpnt, *tmp, **pprev;
struct rb_node **rb_link, *rb_parent; struct rb_node **rb_link, *rb_parent;
...@@ -584,7 +584,7 @@ static int copy_mm(unsigned long clone_flags, struct task_struct * tsk) ...@@ -584,7 +584,7 @@ static int copy_mm(unsigned long clone_flags, struct task_struct * tsk)
return retval; return retval;
} }
static inline struct fs_struct *__copy_fs_struct(struct fs_struct *old) static struct fs_struct *__copy_fs_struct(struct fs_struct *old)
{ {
struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL); struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
/* We don't need to lock fs - think why ;-) */ /* We don't need to lock fs - think why ;-) */
...@@ -616,7 +616,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old) ...@@ -616,7 +616,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
EXPORT_SYMBOL_GPL(copy_fs_struct); EXPORT_SYMBOL_GPL(copy_fs_struct);
static inline int copy_fs(unsigned long clone_flags, struct task_struct * tsk) static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
{ {
if (clone_flags & CLONE_FS) { if (clone_flags & CLONE_FS) {
atomic_inc(&current->fs->count); atomic_inc(&current->fs->count);
...@@ -819,7 +819,7 @@ int unshare_files(void) ...@@ -819,7 +819,7 @@ int unshare_files(void)
EXPORT_SYMBOL(unshare_files); EXPORT_SYMBOL(unshare_files);
static inline int copy_sighand(unsigned long clone_flags, struct task_struct * tsk) static int copy_sighand(unsigned long clone_flags, struct task_struct *tsk)
{ {
struct sighand_struct *sig; struct sighand_struct *sig;
...@@ -842,7 +842,7 @@ void __cleanup_sighand(struct sighand_struct *sighand) ...@@ -842,7 +842,7 @@ void __cleanup_sighand(struct sighand_struct *sighand)
kmem_cache_free(sighand_cachep, sighand); kmem_cache_free(sighand_cachep, sighand);
} }
static inline int copy_signal(unsigned long clone_flags, struct task_struct * tsk) static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
{ {
struct signal_struct *sig; struct signal_struct *sig;
int ret; int ret;
...@@ -924,7 +924,7 @@ void __cleanup_signal(struct signal_struct *sig) ...@@ -924,7 +924,7 @@ void __cleanup_signal(struct signal_struct *sig)
kmem_cache_free(signal_cachep, sig); kmem_cache_free(signal_cachep, sig);
} }
static inline void cleanup_signal(struct task_struct *tsk) static void cleanup_signal(struct task_struct *tsk)
{ {
struct signal_struct *sig = tsk->signal; struct signal_struct *sig = tsk->signal;
...@@ -934,7 +934,7 @@ static inline void cleanup_signal(struct task_struct *tsk) ...@@ -934,7 +934,7 @@ static inline void cleanup_signal(struct task_struct *tsk)
__cleanup_signal(sig); __cleanup_signal(sig);
} }
static inline void copy_flags(unsigned long clone_flags, struct task_struct *p) static void copy_flags(unsigned long clone_flags, struct task_struct *p)
{ {
unsigned long new_flags = p->flags; unsigned long new_flags = p->flags;
...@@ -953,7 +953,7 @@ asmlinkage long sys_set_tid_address(int __user *tidptr) ...@@ -953,7 +953,7 @@ asmlinkage long sys_set_tid_address(int __user *tidptr)
return task_pid_vnr(current); return task_pid_vnr(current);
} }
static inline void rt_mutex_init_task(struct task_struct *p) static void rt_mutex_init_task(struct task_struct *p)
{ {
spin_lock_init(&p->pi_lock); spin_lock_init(&p->pi_lock);
#ifdef CONFIG_RT_MUTEXES #ifdef CONFIG_RT_MUTEXES
...@@ -1385,7 +1385,7 @@ struct task_struct * __cpuinit fork_idle(int cpu) ...@@ -1385,7 +1385,7 @@ struct task_struct * __cpuinit fork_idle(int cpu)
return task; return task;
} }
static inline int fork_traceflag (unsigned clone_flags) static int fork_traceflag(unsigned clone_flags)
{ {
if (clone_flags & CLONE_UNTRACED) if (clone_flags & CLONE_UNTRACED)
return 0; return 0;
...@@ -1521,7 +1521,7 @@ void __init proc_caches_init(void) ...@@ -1521,7 +1521,7 @@ void __init proc_caches_init(void)
* Check constraints on flags passed to the unshare system call and * Check constraints on flags passed to the unshare system call and
* force unsharing of additional process context as appropriate. * force unsharing of additional process context as appropriate.
*/ */
static inline void check_unshare_flags(unsigned long *flags_ptr) static void check_unshare_flags(unsigned long *flags_ptr)
{ {
/* /*
* If unsharing a thread from a thread group, must also * If unsharing a thread from a thread group, must also
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册