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

From: Dave Hansen
Date: Mon Jul 28 2008 - 16:37:53 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/