linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: mike.kravetz@oracle.com, songmuchun@bytedance.com,
	akpm@linux-foundation.org, catalin.marinas@arm.com,
	will@kernel.org, anshuman.khandual@arm.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] arm64/hugetlb: Implement arm64 specific hugetlb_mask_last_hp
Date: Thu, 16 Jun 2022 20:05:03 +0800	[thread overview]
Message-ID: <Yqscbw0l9dL9Eldd@MiWiFi-R3L-srv> (raw)
In-Reply-To: <7256dbe078d7231f45b0f47c2c52a3bd3aa10da7.1655350193.git.baolin.wang@linux.alibaba.com>

On 06/16/22 at 11:34am, Baolin Wang wrote:
> The HugeTLB address ranges are linearly scanned during fork, unmap and
> remap operations, and the linear scan can skip to the end of range mapped
> by the page table page if hitting a non-present entry, which can help
> to speed linear scanning of the HugeTLB address ranges.
> 
> So hugetlb_mask_last_hp() is introduced to help to update the address in
> the loop of HugeTLB linear scanning with getting the last huge page mapped
> by the associated page table page[1], when a non-present entry is encountered.
> 
> Considering ARM64 specific cont-pte/pmd size HugeTLB, this patch implemented
> an ARM64 specific hugetlb_mask_last_hp() to help this case.
> 
> [1] https://lore.kernel.org/linux-mm/20220527225849.284839-1-mike.kravetz@oracle.com/
> 
> Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
> ---
> Note: this patch is based on the series: "hugetlb: speed up linear
> address scanning" from Mike. Mike, please fold it into your series.
> Thanks.
> ---
>  arch/arm64/mm/hugetlbpage.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c
> index e2a5ec9..958935c 100644
> --- a/arch/arm64/mm/hugetlbpage.c
> +++ b/arch/arm64/mm/hugetlbpage.c
> @@ -368,6 +368,26 @@ pte_t *huge_pte_offset(struct mm_struct *mm,
>  	return NULL;
>  }
>  
> +unsigned long hugetlb_mask_last_hp(struct hstate *h)
> +{
> +	unsigned long hp_size = huge_page_size(h);

hp_size may not be a good name, it reminds me of hotplug. I would name
it hpage_size even though a little more characters are added.

> +
> +	switch (hp_size) {
> +	case PUD_SIZE:
> +		return PGDIR_SIZE - PUD_SIZE;
> +	case CONT_PMD_SIZE:
> +		return PUD_SIZE - CONT_PMD_SIZE;
> +	case PMD_SIZE:
> +		return PUD_SIZE - PMD_SIZE;
> +	case CONT_PTE_SIZE:
> +		return PMD_SIZE - CONT_PTE_SIZE;
> +	default:
> +		break;
> +	}
> +
> +	return ~0UL;
> +}
> +
>  pte_t arch_make_huge_pte(pte_t entry, unsigned int shift, vm_flags_t flags)
>  {
>  	size_t pagesize = 1UL << shift;
> -- 
> 1.8.3.1
> 
> 



  parent reply	other threads:[~2022-06-16 12:05 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-16  3:34 Baolin Wang
2022-06-16  8:47 ` kernel test robot
2022-06-16 10:50 ` kernel test robot
2022-06-16 12:05 ` Baoquan He [this message]
2022-06-16 17:35   ` Mike Kravetz
2022-06-17  0:53     ` Baoquan He
2022-06-17 12:17 ` kernel test robot
2022-06-18  3:25   ` Baolin Wang

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=Yqscbw0l9dL9Eldd@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=catalin.marinas@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mike.kravetz@oracle.com \
    --cc=songmuchun@bytedance.com \
    --cc=will@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox