All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: Mike Kravetz <mike.kravetz@oracle.com>,
	Muchun Song <songmuchun@bytedance.com>,
	Peter Xu <peterx@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Michal Hocko <mhocko@suse.com>,
	Naoya Horiguchi <naoya.horiguchi@linux.dev>,
	James Houghton <jthoughton@google.com>,
	Mina Almasry <almasrymina@google.com>,
	"Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [RFC PATCH 1/3] hugetlb: skip to end of PT page mapping when pte not present
Date: Wed, 1 Jun 2022 12:28:44 +0530	[thread overview]
Message-ID: <294314f1-d306-0eb9-059c-f10cb79b9e76@arm.com> (raw)
In-Reply-To: <95bd9375-36d2-7e34-83a8-d9eedfe70956@oracle.com>



On 5/31/22 22:35, Mike Kravetz wrote:
> On 5/30/22 19:04, Muchun Song wrote:
>> On Mon, May 30, 2022 at 03:56:43PM -0400, Peter Xu wrote:
>>> Hi, Mike,
>>>
>>> On Fri, May 27, 2022 at 03:58:47PM -0700, Mike Kravetz wrote:
>>>> +unsigned long hugetlb_mask_last_hp(struct hstate *h)
>>>> +{
>>>> +	unsigned long hp_size = huge_page_size(h);
>>>> +
>>>> +	if (hp_size == P4D_SIZE)
>>>> +		return PGDIR_SIZE - P4D_SIZE;
>>>> +	else if (hp_size == PUD_SIZE)
>>>> +		return P4D_SIZE - PUD_SIZE;
>>>> +	else if (hp_size == PMD_SIZE)
>>>> +		return PUD_SIZE - PMD_SIZE;
>>>> +
>>>> +	return ~(0);
>>>> +}
>>>
>>> How about:
>>>
>>> unsigned long hugetlb_mask_last_hp(struct hstate *h)
>>> {
>>> 	unsigned long hp_size = huge_page_size(h);
>>>
>>> 	return hp_size * (PTRS_PER_PTE - 1);
>>> }
>>>
>>
>> +1
>>  
> 
> 
> I like this as well, but I wonder if we should put something like the
> following in just to be safe.
> 
> BUILD_BUG_ON(PTRS_PER_PTE != PTRS_PER_PMD);
> BUILD_BUG_ON(PTRS_PER_PTE != PTRS_PER_PUD);
> BUILD_BUG_ON(PTRS_PER_PTE != PTRS_PER_P4D);
Exactly, assuming that PTRS_PER_PTE entries are present per page table page for
all supported HugeTLB levels might be bit risky, particularly for the top level.
Hence rather than all these additional BUILD_BUG_ON() checks for using standard
page table page entries i.e PTRS_PER_PTE, it might be better to just stick with
the original check either via 'if else' as proposed or better with a switch case.

  reply	other threads:[~2022-06-01  6:59 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-27 22:58 [RFC PATCH 0/3] hugetlb: speed up linear address scanning Mike Kravetz
2022-05-27 22:58 ` [RFC PATCH 1/3] hugetlb: skip to end of PT page mapping when pte not present Mike Kravetz
2022-05-30 10:10   ` Baolin Wang
2022-05-31 16:56     ` Mike Kravetz
2022-06-15 21:22     ` Mike Kravetz
2022-06-16  3:48       ` Baolin Wang
2022-05-30 19:56   ` Peter Xu
2022-05-31  2:04     ` Muchun Song
2022-05-31 17:05       ` Mike Kravetz
2022-06-01  6:58         ` Anshuman Khandual [this message]
2022-05-31 17:00     ` Mike Kravetz
2022-06-15 17:27       ` Mike Kravetz
2022-06-15 17:51         ` Peter Xu
2022-05-27 22:58 ` [RFC PATCH 2/3] hugetlb: do not update address in huge_pmd_unshare Mike Kravetz
2022-05-30 10:14   ` Baolin Wang
2022-05-30 15:36   ` Muchun Song
2022-05-31 17:06     ` Mike Kravetz
2022-05-27 22:58 ` [RFC PATCH 3/3] hugetlb: Lazy page table copies in fork() Mike Kravetz
2022-05-31 17:25   ` David Hildenbrand
2022-06-01  5:20   ` Muchun Song

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=294314f1-d306-0eb9-059c-f10cb79b9e76@arm.com \
    --to=anshuman.khandual@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=almasrymina@google.com \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=jthoughton@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.com \
    --cc=mike.kravetz@oracle.com \
    --cc=naoya.horiguchi@linux.dev \
    --cc=paul.walmsley@sifive.com \
    --cc=peterx@redhat.com \
    --cc=songmuchun@bytedance.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.