Re: [PATCH 4/5 V2] Build hugetlb backed process stacks

Dave Hansen
2008-07-28T20:37:47Z

On Mon, 2008-07-28 at 12:17 -0700, Eric Munson wrote:
>
> +static int move_to_huge_pages(struct linux_binprm *bprm,
> + struct vm_area_struct *vma, unsigned
> long shift)
> +{
> + struct mm_struct *mm = vma->vm_mm;
> + struct vm_area_struct *new_vma;
> + unsigned long old_end = vma->vm_end;
> + unsigned long old_start = vma->vm_start;
> + unsigned long new_end = old_end - shift;
> + unsigned long new_start, length;
> + unsigned long arg_size = new_end - bprm->p;
> + unsigned long flags = vma->vm_flags;
> + struct file *hugefile = NULL;
> + unsigned int stack_hpages = 0;
> + struct page **from_pages = NULL;
> + struct page **to_pages = NULL;
> + unsigned long num_pages = (arg_size / PAGE_SIZE) + 1;
> + int ret;
> + int i;
> +
> +#ifdef CONFIG_STACK_GROWSUP

Why do you have the #ifdef for the CONFIG_STACK_GROWSUP=y case in that
first patch if you don't support CONFIG_STACK_GROWSUP=y?

I think it might be worth some time to break this up a wee little bit.
16 local variables is a big on the beefy side. :)

-- Dave