From: Muchun Song <muchun.song@linux.dev>
To: peterx@redhat.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org
Cc: Matthew Wilcox <willy@infradead.org>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Lorenzo Stoakes <lstoakes@gmail.com>,
David Hildenbrand <david@redhat.com>,
Vlastimil Babka <vbabka@suse.cz>,
Mike Kravetz <mike.kravetz@oracle.com>,
Mike Rapoport <rppt@kernel.org>,
Christoph Hellwig <hch@infradead.org>,
John Hubbard <jhubbard@nvidia.com>,
Andrew Jones <andrew.jones@linux.dev>,
linux-arm-kernel@lists.infradead.org,
Michael Ellerman <mpe@ellerman.id.au>,
"Kirill A . Shutemov" <kirill@shutemov.name>,
linuxppc-dev@lists.ozlabs.org, Rik van Riel <riel@surriel.com>,
linux-riscv@lists.infradead.org, Yang Shi <shy828301@gmail.com>,
James Houghton <jthoughton@google.com>,
"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Jason Gunthorpe <jgg@nvidia.com>,
Andrea Arcangeli <aarcange@redhat.com>,
Axel Rasmussen <axelrasmussen@google.com>
Subject: Re: [PATCH 03/13] mm: Provide generic pmd_thp_or_huge()
Date: Mon, 25 Dec 2023 14:29:53 +0800 [thread overview]
Message-ID: <135b3189-f459-4b57-9861-bb8acb999d91@linux.dev> (raw)
In-Reply-To: <20231219075538.414708-4-peterx@redhat.com>
On 2023/12/19 15:55, peterx@redhat.com wrote:
> From: Peter Xu <peterx@redhat.com>
>
> ARM defines pmd_thp_or_huge(), detecting either a THP or a huge PMD. It
> can be a helpful helper if we want to merge more THP and hugetlb code
> paths. Make it a generic default implementation, only exist when
> CONFIG_MMU. Arch can overwrite it by defining its own version.
>
> For example, ARM's pgtable-2level.h defines it to always return false.
>
> Keep the macro declared with all config, it should be optimized to a false
> anyway if !THP && !HUGETLB.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
> include/linux/pgtable.h | 4 ++++
> mm/gup.c | 3 +--
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index af7639c3b0a3..6f2fa1977b8a 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -1355,6 +1355,10 @@ static inline int pmd_write(pmd_t pmd)
> #endif /* pmd_write */
> #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
>
> +#ifndef pmd_thp_or_huge
I think it may be the time to rename to pmd_thp_or_hugetlb,
the "huge" is really confusing. thp is not huge? Actually,
it is huge. It is better to make it more specific from now on, like
"hugetlb".
BTW, please cc me via the new email (muchun.song@linux.dev) next edition.
Thanks.
> +#define pmd_thp_or_huge(pmd) (pmd_huge(pmd) || pmd_trans_huge(pmd))
> +#endif
> +
> #ifndef pud_write
> static inline int pud_write(pud_t pud)
> {
> diff --git a/mm/gup.c b/mm/gup.c
> index 0a5f0e91bfec..efc9847e58fb 100644
> --- a/mm/gup.c
> +++ b/mm/gup.c
> @@ -3004,8 +3004,7 @@ static int gup_pmd_range(pud_t *pudp, pud_t pud, unsigned long addr, unsigned lo
> if (!pmd_present(pmd))
> return 0;
>
> - if (unlikely(pmd_trans_huge(pmd) || pmd_huge(pmd) ||
> - pmd_devmap(pmd))) {
> + if (unlikely(pmd_thp_or_huge(pmd) || pmd_devmap(pmd))) {
> /* See gup_pte_range() */
> if (pmd_protnone(pmd))
> return 0;
next prev parent reply other threads:[~2023-12-25 6:30 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-19 7:55 [PATCH 00/13] mm/gup: Unify hugetlb, part 2 peterx
2023-12-19 7:55 ` [PATCH 01/13] mm/Kconfig: CONFIG_PGTABLE_HAS_HUGE_LEAVES peterx
2023-12-19 7:55 ` [PATCH 02/13] mm/hugetlb: Declare hugetlbfs_pagecache_present() non-static peterx
2023-12-19 7:55 ` [PATCH 03/13] mm: Provide generic pmd_thp_or_huge() peterx
2023-12-25 6:29 ` Muchun Song [this message]
2024-01-02 5:37 ` Peter Xu
2024-01-02 6:30 ` Muchun Song
2023-12-19 7:55 ` [PATCH 04/13] mm: Make HPAGE_PXD_* macros even if !THP peterx
2023-12-19 7:55 ` [PATCH 05/13] mm: Introduce vma_pgtable_walk_{begin|end}() peterx
2023-12-25 6:34 ` Muchun Song
[not found] ` <ZZOhlB-KK4hF3PgY@x1n>
2024-01-02 6:29 ` Muchun Song
2023-12-19 7:55 ` [PATCH 06/13] mm/gup: Drop folio_fast_pin_allowed() in hugepd processing peterx
2023-12-19 7:55 ` [PATCH 07/13] mm/gup: Refactor record_subpages() to find 1st small page peterx
2023-12-19 7:55 ` [PATCH 08/13] mm/gup: Handle hugetlb for no_page_table() peterx
2023-12-19 7:55 ` [PATCH 09/13] mm/gup: Cache *pudp in follow_pud_mask() peterx
2023-12-19 16:28 ` James Houghton
2023-12-20 1:43 ` Peter Xu
2023-12-19 7:55 ` [PATCH 10/13] mm/gup: Handle huge pud for follow_pud_mask() peterx
2023-12-19 7:55 ` [PATCH 11/13] mm/gup: Handle huge pmd for follow_pmd_mask() peterx
2023-12-19 7:55 ` [PATCH 12/13] mm/gup: Handle hugepd for follow_page() peterx
2023-12-19 7:55 ` [PATCH 13/13] mm/gup: Handle hugetlb in the generic follow_page_mask code peterx
2023-12-22 1:35 ` [PATCH 00/13] mm/gup: Unify hugetlb, part 2 Peter Xu
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=135b3189-f459-4b57-9861-bb8acb999d91@linux.dev \
--to=muchun.song@linux.dev \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andrew.jones@linux.dev \
--cc=aneesh.kumar@kernel.org \
--cc=axelrasmussen@google.com \
--cc=christophe.leroy@csgroup.eu \
--cc=david@redhat.com \
--cc=hch@infradead.org \
--cc=jgg@nvidia.com \
--cc=jhubbard@nvidia.com \
--cc=jthoughton@google.com \
--cc=kirill@shutemov.name \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lstoakes@gmail.com \
--cc=mike.kravetz@oracle.com \
--cc=mpe@ellerman.id.au \
--cc=peterx@redhat.com \
--cc=riel@surriel.com \
--cc=rppt@kernel.org \
--cc=shy828301@gmail.com \
--cc=vbabka@suse.cz \
--cc=willy@infradead.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