Commit cb8f488c authored by Denys Vlasenko's avatar Denys Vlasenko Committed by Linus Torvalds

mmap.c: deinline a few functions

__vma_link_file and expand_downwards functions are not small, yeat they
are marked inline.  They probably had one callsite sometime in the past,
but now they have more.  In order to prevent similar thing, I also
deinlined expand_upwards, despite it having only pne callsite.  Nowadays
gcc auto-inlines such static functions anyway.  In find_extend_vma, I
removed one extra level of indirection.

Patch is deliberately generated with -U $BIGNUM to make
it easier to see that functions are big.

Result:

# size */*/mmap.o */vmlinux
   text    data     bss     dec     hex filename
   9514     188      16    9718    25f6 0.org/mm/mmap.o
   9237     188      16    9441    24e1 deinline/mm/mmap.o
6124402  858996  389480 7372878  70804e 0.org/vmlinux
6124113  858996  389480 7372589  707f2d deinline/vmlinux
Signed-off-by: default avatarDenys Vlasenko <vda.linux@googlemail.com>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 51b07fc3
...@@ -410,7 +410,7 @@ void __vma_link_rb(struct mm_struct *mm, struct vm_area_struct *vma, ...@@ -410,7 +410,7 @@ void __vma_link_rb(struct mm_struct *mm, struct vm_area_struct *vma,
rb_insert_color(&vma->vm_rb, &mm->mm_rb); rb_insert_color(&vma->vm_rb, &mm->mm_rb);
} }
static inline void __vma_link_file(struct vm_area_struct *vma) static void __vma_link_file(struct vm_area_struct *vma)
{ {
struct file * file; struct file * file;
...@@ -1591,7 +1591,7 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un ...@@ -1591,7 +1591,7 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un
* vma is the last one with address > vma->vm_end. Have to extend vma. * vma is the last one with address > vma->vm_end. Have to extend vma.
*/ */
#ifndef CONFIG_IA64 #ifndef CONFIG_IA64
static inline static
#endif #endif
int expand_upwards(struct vm_area_struct *vma, unsigned long address) int expand_upwards(struct vm_area_struct *vma, unsigned long address)
{ {
...@@ -1641,7 +1641,7 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) ...@@ -1641,7 +1641,7 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
/* /*
* vma is the first one with address < vma->vm_start. Have to extend vma. * vma is the first one with address < vma->vm_start. Have to extend vma.
*/ */
static inline int expand_downwards(struct vm_area_struct *vma, static int expand_downwards(struct vm_area_struct *vma,
unsigned long address) unsigned long address)
{ {
int error; int error;
...@@ -1703,7 +1703,7 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr) ...@@ -1703,7 +1703,7 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr)
vma = find_vma_prev(mm, addr, &prev); vma = find_vma_prev(mm, addr, &prev);
if (vma && (vma->vm_start <= addr)) if (vma && (vma->vm_start <= addr))
return vma; return vma;
if (!prev || expand_stack(prev, addr)) if (expand_stack(prev, addr))
return NULL; return NULL;
if (prev->vm_flags & VM_LOCKED) { if (prev->vm_flags & VM_LOCKED) {
if (mlock_vma_pages_range(prev, addr, prev->vm_end) < 0) if (mlock_vma_pages_range(prev, addr, prev->vm_end) < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment