All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Kravetz <mike.kravetz@oracle.com>
To: Xin Hao <xhao@linux.alibaba.com>
Cc: songmuchun@bytedance.com, akpm@linux-foundation.org,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH V3] mm/hugetlb: add available_huge_pages() func
Date: Mon, 19 Sep 2022 16:58:53 -0700	[thread overview]
Message-ID: <YykCPfGkMwNksqCs@monkey> (raw)
In-Reply-To: <20220917011528.11331-1-xhao@linux.alibaba.com>

On 09/17/22 09:15, Xin Hao wrote:
> In hugetlb.c file, there are several places to compare the values of
> 'h->free_huge_pages' and 'h->resv_huge_pages', it looks a bit messy, so
> there add a new available_huge_pages() func to do these.

Thanks, I think the code looks a little better with this change.

> 
> Signed-off-by: Xin Hao <xhao@linux.alibaba.com>
> Changes from v2
> https://lore.kernel.org/linux-mm/20220916064127.1904-1-xhao@linux.alibaba.com/
> - Convert is_resv_equal_free() to available_huge_pages()

I believe the above 'Changes from v2' information should be below the marker
'---' as it will not be included in the changelog.

> ---
>  mm/hugetlb.c | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)

The changes look fine,

Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
-- 
Mike Kravetz

> 
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index 5ea0b1b0d1ab..21d7f2361696 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -1191,6 +1191,11 @@ static struct page *dequeue_huge_page_nodemask(struct hstate *h, gfp_t gfp_mask,
>  	return NULL;
>  }
> 
> +static unsigned long available_huge_pages(struct hstate *h)
> +{
> +	return h->free_huge_pages - h->resv_huge_pages;
> +}
> +
>  static struct page *dequeue_huge_page_vma(struct hstate *h,
>  				struct vm_area_struct *vma,
>  				unsigned long address, int avoid_reserve,
> @@ -1207,12 +1212,11 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
>  	 * have no page reserves. This check ensures that reservations are
>  	 * not "stolen". The child may still get SIGKILLed
>  	 */
> -	if (!vma_has_reserves(vma, chg) &&
> -			h->free_huge_pages - h->resv_huge_pages == 0)
> +	if (!vma_has_reserves(vma, chg) && !available_huge_pages(h))
>  		goto err;
> 
>  	/* If reserves cannot be used, ensure enough pages are in the pool */
> -	if (avoid_reserve && h->free_huge_pages - h->resv_huge_pages == 0)
> +	if (avoid_reserve && !available_huge_pages(h))
>  		goto err;
> 
>  	gfp_mask = htlb_alloc_mask(h);
> @@ -2105,7 +2109,7 @@ int dissolve_free_huge_page(struct page *page)
>  	if (!page_count(page)) {
>  		struct page *head = compound_head(page);
>  		struct hstate *h = page_hstate(head);
> -		if (h->free_huge_pages - h->resv_huge_pages == 0)
> +		if (!available_huge_pages(h))
>  			goto out;
> 
>  		/*
> @@ -2315,7 +2319,7 @@ struct page *alloc_huge_page_nodemask(struct hstate *h, int preferred_nid,
>  		nodemask_t *nmask, gfp_t gfp_mask)
>  {
>  	spin_lock_irq(&hugetlb_lock);
> -	if (h->free_huge_pages - h->resv_huge_pages > 0) {
> +	if (available_huge_pages(h)) {
>  		struct page *page;
> 
>  		page = dequeue_huge_page_nodemask(h, gfp_mask, preferred_nid, nmask);
> --
> 2.31.0


  reply	other threads:[~2022-09-19 23:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-17  1:15 [PATCH V3] mm/hugetlb: add available_huge_pages() func Xin Hao
2022-09-19 23:58 ` Mike Kravetz [this message]
2022-09-20  1:46   ` haoxin
2022-09-20  3:28 ` Oscar Salvador

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YykCPfGkMwNksqCs@monkey \
    --to=mike.kravetz@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=songmuchun@bytedance.com \
    --cc=xhao@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.