All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Matthew Wilcox <willy@infradead.org>,
	Yin Fengwei <fengwei.yin@intel.com>,
	David Hildenbrand <david@redhat.com>, Yu Zhao <yuzhao@google.com>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Yang Shi <shy828301@gmail.com>,
	"Huang, Ying" <ying.huang@intel.com>, Zi Yan <ziy@nvidia.com>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Itaru Kitayama <itaru.kitayama@gmail.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	John Hubbard <jhubbard@nvidia.com>,
	David Rientjes <rientjes@google.com>,
	Vlastimil Babka <vbabka@suse.cz>, Hugh Dickins <hughd@google.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 7/9] arm64/mm: Override arch_wants_pte_order()
Date: Tue, 3 Oct 2023 13:05:25 +0100	[thread overview]
Message-ID: <ZRwDhfejnvQ7jfwW@arm.com> (raw)
In-Reply-To: <0fb0840f-02f0-4103-a6be-eeb4fcc16f8f@arm.com>

On Tue, Oct 03, 2023 at 08:32:29AM +0100, Ryan Roberts wrote:
> On 02/10/2023 16:21, Catalin Marinas wrote:
> > On Fri, Sep 29, 2023 at 12:44:18PM +0100, Ryan Roberts wrote:
> >> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> >> index 7f7d9b1df4e5..e3d2449dec5c 100644
> >> --- a/arch/arm64/include/asm/pgtable.h
> >> +++ b/arch/arm64/include/asm/pgtable.h
> >> @@ -1110,6 +1110,16 @@ extern pte_t ptep_modify_prot_start(struct vm_area_struct *vma,
> >>  extern void ptep_modify_prot_commit(struct vm_area_struct *vma,
> >>  				    unsigned long addr, pte_t *ptep,
> >>  				    pte_t old_pte, pte_t new_pte);
> >> +
> >> +#define arch_wants_pte_order arch_wants_pte_order
> >> +static inline int arch_wants_pte_order(void)
> >> +{
> >> +	/*
> >> +	 * Many arm64 CPUs support hardware page aggregation (HPA), which can
> >> +	 * coalesce 4 contiguous pages into a single TLB entry.
> >> +	 */
> >> +	return 2;
> >> +}
> > 
> > I haven't followed the discussions on previous revisions of this series
> > but I wonder why not return a bitmap from arch_wants_pte_order(). For
> > arm64 we may want an order 6 at some point (contiguous ptes) with a
> > fallback to order 2 as the next best.
> 
> This sounds like good idea to me - I'll implement it, assuming there is a next
> rev. (Or in the unlikely event that this is the only pending change, I'd rather
> defer it to when we actually need it with the contpte series).

Fine by me, at the moment there wouldn't be any user, so a patch on top
later would do.

> Side note: I don't think order-6 is ever a contpte size? Its order-4 for 4K,
> order-7 for 16k and order-5 for 64k.

Yes, it's order-4 for 4K pages (I was thinking too much of the "64" in 64KB).

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Matthew Wilcox <willy@infradead.org>,
	Yin Fengwei <fengwei.yin@intel.com>,
	David Hildenbrand <david@redhat.com>, Yu Zhao <yuzhao@google.com>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Yang Shi <shy828301@gmail.com>,
	"Huang, Ying" <ying.huang@intel.com>, Zi Yan <ziy@nvidia.com>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Itaru Kitayama <itaru.kitayama@gmail.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	John Hubbard <jhubbard@nvidia.com>,
	David Rientjes <rientjes@google.com>,
	Vlastimil Babka <vbabka@suse.cz>, Hugh Dickins <hughd@google.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v6 7/9] arm64/mm: Override arch_wants_pte_order()
Date: Tue, 3 Oct 2023 13:05:25 +0100	[thread overview]
Message-ID: <ZRwDhfejnvQ7jfwW@arm.com> (raw)
In-Reply-To: <0fb0840f-02f0-4103-a6be-eeb4fcc16f8f@arm.com>

On Tue, Oct 03, 2023 at 08:32:29AM +0100, Ryan Roberts wrote:
> On 02/10/2023 16:21, Catalin Marinas wrote:
> > On Fri, Sep 29, 2023 at 12:44:18PM +0100, Ryan Roberts wrote:
> >> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> >> index 7f7d9b1df4e5..e3d2449dec5c 100644
> >> --- a/arch/arm64/include/asm/pgtable.h
> >> +++ b/arch/arm64/include/asm/pgtable.h
> >> @@ -1110,6 +1110,16 @@ extern pte_t ptep_modify_prot_start(struct vm_area_struct *vma,
> >>  extern void ptep_modify_prot_commit(struct vm_area_struct *vma,
> >>  				    unsigned long addr, pte_t *ptep,
> >>  				    pte_t old_pte, pte_t new_pte);
> >> +
> >> +#define arch_wants_pte_order arch_wants_pte_order
> >> +static inline int arch_wants_pte_order(void)
> >> +{
> >> +	/*
> >> +	 * Many arm64 CPUs support hardware page aggregation (HPA), which can
> >> +	 * coalesce 4 contiguous pages into a single TLB entry.
> >> +	 */
> >> +	return 2;
> >> +}
> > 
> > I haven't followed the discussions on previous revisions of this series
> > but I wonder why not return a bitmap from arch_wants_pte_order(). For
> > arm64 we may want an order 6 at some point (contiguous ptes) with a
> > fallback to order 2 as the next best.
> 
> This sounds like good idea to me - I'll implement it, assuming there is a next
> rev. (Or in the unlikely event that this is the only pending change, I'd rather
> defer it to when we actually need it with the contpte series).

Fine by me, at the moment there wouldn't be any user, so a patch on top
later would do.

> Side note: I don't think order-6 is ever a contpte size? Its order-4 for 4K,
> order-7 for 16k and order-5 for 64k.

Yes, it's order-4 for 4K pages (I was thinking too much of the "64" in 64KB).

-- 
Catalin


  reply	other threads:[~2023-10-03 12:06 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-29 11:44 [PATCH v6 0/9] variable-order, large folios for anonymous memory Ryan Roberts
2023-09-29 11:44 ` Ryan Roberts
2023-09-29 11:44 ` [PATCH v6 1/9] mm: Allow deferred splitting of arbitrary anon large folios Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-10-05  8:19   ` David Hildenbrand
2023-10-05  8:19     ` David Hildenbrand
2023-09-29 11:44 ` [PATCH v6 2/9] mm: Non-pmd-mappable, large folios for folio_add_new_anon_rmap() Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-09-29 13:45   ` Kirill A. Shutemov
2023-09-29 13:45     ` Kirill A. Shutemov
2023-09-29 14:39     ` Ryan Roberts
2023-09-29 14:39       ` Ryan Roberts
2023-09-29 11:44 ` [PATCH v6 3/9] mm: thp: Account pte-mapped anonymous THP usage Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-09-29 11:44 ` [PATCH v6 4/9] mm: thp: Introduce anon_orders and anon_always_mask sysfs files Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-09-29 22:55   ` Andrew Morton
2023-09-29 22:55     ` Andrew Morton
2023-09-29 22:55     ` Andrew Morton
2023-10-02 10:15     ` Ryan Roberts
2023-10-02 10:15       ` Ryan Roberts
2023-10-02 10:15       ` Ryan Roberts
2023-10-07 22:54     ` Michael Ellerman
2023-10-07 22:54       ` Michael Ellerman
2023-10-07 22:54       ` Michael Ellerman
2023-10-10  0:20       ` Andrew Morton
2023-10-10  0:20         ` Andrew Morton
2023-10-10  0:20         ` Andrew Morton
2023-10-12  9:31         ` David Hildenbrand
2023-10-12  9:31           ` David Hildenbrand
2023-10-12  9:31           ` David Hildenbrand
2023-10-12 11:07         ` Michael Ellerman
2023-10-12 11:07           ` Michael Ellerman
2023-10-12 11:07           ` Michael Ellerman
2023-10-11  6:02   ` kernel test robot
2023-10-11  6:02     ` kernel test robot
2023-09-29 11:44 ` [PATCH v6 5/9] mm: thp: Extend THP to allocate anonymous large folios Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-10-05 12:05   ` Daniel Gomez
2023-10-05 12:05     ` Daniel Gomez
2023-10-05 12:49     ` Ryan Roberts
2023-10-05 12:49       ` Ryan Roberts
2023-10-05 14:59       ` Daniel Gomez
2023-10-05 14:59         ` Daniel Gomez
2023-10-27 23:04   ` John Hubbard
2023-10-27 23:04     ` John Hubbard
2023-10-30 11:43     ` Ryan Roberts
2023-10-30 11:43       ` Ryan Roberts
2023-10-30 23:25       ` John Hubbard
2023-10-30 23:25         ` John Hubbard
2023-11-01 13:56         ` Ryan Roberts
2023-11-01 13:56           ` Ryan Roberts
2023-09-29 11:44 ` [PATCH v6 6/9] mm: thp: Add "recommend" option for anon_orders Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-10-06 20:08   ` David Hildenbrand
2023-10-06 20:08     ` David Hildenbrand
2023-10-06 22:28     ` Yu Zhao
2023-10-06 22:28       ` Yu Zhao
2023-10-09 11:45       ` Ryan Roberts
2023-10-09 11:45         ` Ryan Roberts
2023-10-09 14:43         ` David Hildenbrand
2023-10-09 14:43           ` David Hildenbrand
2023-10-09 20:04         ` Yu Zhao
2023-10-09 20:04           ` Yu Zhao
2023-10-10 10:16           ` Ryan Roberts
2023-10-10 10:16             ` Ryan Roberts
2023-09-29 11:44 ` [PATCH v6 7/9] arm64/mm: Override arch_wants_pte_order() Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-10-02 15:21   ` Catalin Marinas
2023-10-02 15:21     ` Catalin Marinas
2023-10-03  7:32     ` Ryan Roberts
2023-10-03  7:32       ` Ryan Roberts
2023-10-03 12:05       ` Catalin Marinas [this message]
2023-10-03 12:05         ` Catalin Marinas
2023-09-29 11:44 ` [PATCH v6 8/9] selftests/mm/cow: Generalize do_run_with_thp() helper Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-09-29 11:44 ` [PATCH v6 9/9] selftests/mm/cow: Add tests for small-order anon THP Ryan Roberts
2023-09-29 11:44   ` Ryan Roberts
2023-10-06 20:06 ` [PATCH v6 0/9] variable-order, large folios for anonymous memory David Hildenbrand
2023-10-06 20:06   ` David Hildenbrand
2023-10-09 11:28   ` Ryan Roberts
2023-10-09 11:28     ` Ryan Roberts
2023-10-09 16:22     ` David Hildenbrand
2023-10-09 16:22       ` David Hildenbrand
2023-10-10 10:47       ` Ryan Roberts
2023-10-10 10:47         ` Ryan Roberts
2023-10-13 20:14         ` David Hildenbrand
2023-10-13 20:14           ` David Hildenbrand
2023-10-20 12:33   ` Ryan Roberts
2023-10-20 12:33     ` Ryan Roberts
2023-10-25 16:24     ` Ryan Roberts
2023-10-25 16:24       ` Ryan Roberts
2023-10-25 18:47       ` David Hildenbrand
2023-10-25 18:47         ` David Hildenbrand
2023-10-25 19:11         ` Yu Zhao
2023-10-25 19:11           ` Yu Zhao
2023-10-26  9:53           ` Ryan Roberts
2023-10-26  9:53             ` Ryan Roberts
2023-10-26 15:19             ` David Hildenbrand
2023-10-26 15:19               ` David Hildenbrand
2023-10-25 19:10       ` John Hubbard
2023-10-25 19:10         ` John Hubbard
2023-10-31 11:50   ` Ryan Roberts
2023-10-31 11:50     ` Ryan Roberts
2023-10-31 11:55     ` Ryan Roberts
2023-10-31 11:55       ` Ryan Roberts
2023-10-31 12:03       ` David Hildenbrand
2023-10-31 12:03         ` David Hildenbrand
2023-10-31 13:13         ` Ryan Roberts
2023-10-31 13:13           ` Ryan Roberts
2023-10-31 18:29       ` Yang Shi
2023-10-31 18:29         ` Yang Shi
2023-11-01 14:02         ` Ryan Roberts
2023-11-01 14:02           ` Ryan Roberts
2023-11-01 18:11           ` Yang Shi
2023-11-01 18:11             ` Yang Shi
2023-10-31 11:58     ` David Hildenbrand
2023-10-31 11:58       ` David Hildenbrand
2023-10-31 13:12       ` Ryan Roberts
2023-10-31 13:12         ` Ryan Roberts
2023-11-13  3:57 ` John Hubbard
2023-11-13  3:57   ` John Hubbard
2023-11-13  5:18   ` Matthew Wilcox
2023-11-13  5:18     ` Matthew Wilcox
2023-11-13 10:19     ` Ryan Roberts
2023-11-13 10:19       ` Ryan Roberts
2023-11-13 11:52       ` Kefeng Wang
2023-11-13 11:52         ` Kefeng Wang
2023-11-13 12:12         ` Ryan Roberts
2023-11-13 12:12           ` Ryan Roberts
2023-11-13 14:52           ` Kefeng Wang
2023-11-13 14:52             ` Kefeng Wang
2023-11-13 14:52       ` John Hubbard
2023-11-13 14:52         ` John Hubbard
2023-11-13 15:04       ` Matthew Wilcox
2023-11-13 15:04         ` Matthew Wilcox
2023-11-14 10:57         ` Ryan Roberts
2023-11-14 10:57           ` Ryan Roberts
2023-12-05 16:05           ` Matthew Wilcox
2023-12-05 16:05             ` Matthew Wilcox

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=ZRwDhfejnvQ7jfwW@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=david@redhat.com \
    --cc=fengwei.yin@intel.com \
    --cc=hughd@google.com \
    --cc=itaru.kitayama@gmail.com \
    --cc=jhubbard@nvidia.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mcgrof@kernel.org \
    --cc=rientjes@google.com \
    --cc=ryan.roberts@arm.com \
    --cc=shy828301@gmail.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    --cc=ying.huang@intel.com \
    --cc=yuzhao@google.com \
    --cc=ziy@nvidia.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.