Re: [PATCH 1/9] mm, hugetlb: move up the code which check availability of free huge page

Aneesh Kumar K.V
2013-07-16T03:36:14Z

Joonsoo Kim <iamjoonsoo.kim@lge.com> writes:

> On Mon, Jul 15, 2013 at 07:31:33PM +0530, Aneesh Kumar K.V wrote:
>> Joonsoo Kim <iamjoonsoo.kim@lge.com> writes:
>>
>> > We don't need to proceede the processing if we don't have any usable
>> > free huge page. So move this code up.
>>
>> I guess you can also mention that since we are holding hugetlb_lock
>> hstate values can't change.
>
> Okay. I will mention this for v2.
>
>>
>>
>> Also.
>>
>> >
>> > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
>> >
>> > diff --git a/mm/hugetlb.c b/mm/hugetlb.c
>> > index e2bfbf7..d87f70b 100644
>> > --- a/mm/hugetlb.c
>> > +++ b/mm/hugetlb.c
>> > @@ -539,10 +539,6 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
>> > struct zoneref *z;
>> > unsigned int cpuset_mems_cookie;
>> >
>> > -retry_cpuset:
>> > - cpuset_mems_cookie = get_mems_allowed();
>> > - zonelist = huge_zonelist(vma, address,
>> > - htlb_alloc_mask, &mpol, &nodemask);
>> > /*
>> > * A child process with MAP_PRIVATE mappings created by their parent
>> > * have no page reserves. This check ensures that reservations are
>> > @@ -550,11 +546,16 @@ retry_cpuset:
>> > */
>> > if (!vma_has_reserves(vma) &&
>> > h->free_huge_pages - h->resv_huge_pages == 0)
>> > - goto err;
>> > + return NULL;
>> >
>>
>> If you don't do the above change, the patch will be much simpler.
>
> The patch will be, but output code will not.
> With this change, we can remove one goto label('err:') and
> this makes code more readable.
>

If you feel stronly about the cleanup, you can do another path for the
cleanups. Don't mix things in a single patch. That makes review difficult.

-aneesh