From: Peter Xu <peterx@redhat•com>
To: Ryan Roberts <ryan.roberts@arm•com>
Cc: Andrea Arcangeli <aarcange@redhat•com>,
James Houghton <jthoughton@google•com>,
Lorenzo Stoakes <lstoakes@gmail•com>,
David Hildenbrand <david@redhat•com>,
John Hubbard <jhubbard@nvidia•com>,
Yang Shi <shy828301@gmail•com>, Rik van Riel <riel@surriel•com>,
Hugh Dickins <hughd@google•com>,
"linux-kernel@vger•kernel.org" <linux-kernel@vger•kernel.org>,
Matthew Wilcox <willy@infradead•org>,
Christoph Hellwig <hch@infradead•org>,
"linux-mm@kvack•org" <linux-mm@kvack•org>,
Mike Rapoport <rppt@kernel•org>, Jason Gunthorpe <jgg@nvidia•com>,
"Kirill A . Shutemov" <kirill@shutemov•name>,
Axel Rasmussen <axelrasmussen@google•com>,
Andrew Morton <akpm@linux-foundation•org>,
"linuxppc-dev@lists•ozlabs.org" <linuxppc-dev@lists•ozlabs.org>,
Vlastimil Babka <vbabka@suse•cz>,
Mike Kravetz <mike.kravetz@oracle•com>
Subject: Re: [PATCH RFC 06/12] mm/gup: Drop folio_fast_pin_allowed() in hugepd processing
Date: Mon, 4 Dec 2023 11:48:52 -0500 [thread overview]
Message-ID: <ZW4C9I2LHmZY-COM@x1n> (raw)
In-Reply-To: <01aad92f-b1e0-4f31-b905-8b1c2012ebab@arm.com>
On Mon, Dec 04, 2023 at 11:11:26AM +0000, Ryan Roberts wrote:
> To be honest, while I understand pte_cont() and friends, I don't understand
> their relevance (or at least potential future relevance) to GUP?
GUP in general can be smarter to recognize if a pte/pmd is a cont_pte and
fetch the whole pte/pmd range if the caller specified. Now it loops over
each pte/pmd.
Fast-gup is better as it at least doesn't take pgtable lock, for cont_pte
it looks inside gup_pte_range() which is good enough, but it'll still do
folio checks for each sub-pte, even though the 2nd+ folio checks should be
mostly the same (if to ignore races when the folio changed within the time
of processing the cont_pte chunk).
Slow-gup (as of what this series is about so far) doesn't do that either,
for each cont_pte whole entry it'll loop N times, frequently taking and
releasing the pgtable lock. A smarter slow-gup can fundamentallly setup
follow_page_context.page_mask if it sees a cont_pte. There might be a
challenge on whether holding the head page's refcount would stablize the
whole folio, but that may be another question to ask.
I think I also overlooked that PPC_8XX also has cont_pte support, so we
actually have three users indeed, if not counting potential future archs
adding support to also get that same tlb benefit.
Thanks,
--
Peter Xu
prev parent reply other threads:[~2023-12-04 16:49 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20231116012908.392077-1-peterx@redhat.com>
2023-11-16 1:29 ` [PATCH RFC 06/12] mm/gup: Drop folio_fast_pin_allowed() in hugepd processing Peter Xu
2023-11-20 8:26 ` Christoph Hellwig
2023-11-21 15:59 ` Peter Xu
2023-11-22 8:00 ` Christoph Hellwig
2023-11-22 15:22 ` Peter Xu
2023-11-23 7:21 ` Christoph Hellwig
2023-11-23 16:10 ` Peter Xu
2023-11-23 18:22 ` Christophe Leroy
2023-11-23 19:37 ` Peter Xu
2023-11-24 5:28 ` Aneesh Kumar K.V
2023-11-24 7:03 ` Christophe Leroy
2023-11-24 18:16 ` Peter Xu
2023-11-24 1:06 ` Michael Ellerman
2023-11-23 15:47 ` Matthew Wilcox
2023-11-23 17:22 ` Peter Xu
2023-11-23 19:11 ` Ryan Roberts
2023-11-23 19:46 ` Peter Xu
2023-11-24 9:06 ` Ryan Roberts
2023-11-24 16:07 ` Peter Xu
2023-11-30 21:30 ` Peter Xu
2023-12-03 13:33 ` Christophe Leroy
2023-12-04 11:11 ` Ryan Roberts
2023-12-04 11:25 ` Christophe Leroy
2023-12-04 11:46 ` Ryan Roberts
2023-12-04 11:57 ` Christophe Leroy
2023-12-04 12:02 ` Ryan Roberts
2023-12-04 16:48 ` Peter Xu [this message]
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=ZW4C9I2LHmZY-COM@x1n \
--to=peterx@redhat$(echo .)com \
--cc=aarcange@redhat$(echo .)com \
--cc=akpm@linux-foundation$(echo .)org \
--cc=axelrasmussen@google$(echo .)com \
--cc=david@redhat$(echo .)com \
--cc=hch@infradead$(echo .)org \
--cc=hughd@google$(echo .)com \
--cc=jgg@nvidia$(echo .)com \
--cc=jhubbard@nvidia$(echo .)com \
--cc=jthoughton@google$(echo .)com \
--cc=kirill@shutemov$(echo .)name \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-mm@kvack$(echo .)org \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=lstoakes@gmail$(echo .)com \
--cc=mike.kravetz@oracle$(echo .)com \
--cc=riel@surriel$(echo .)com \
--cc=rppt@kernel$(echo .)org \
--cc=ryan.roberts@arm$(echo .)com \
--cc=shy828301@gmail$(echo .)com \
--cc=vbabka@suse$(echo .)cz \
--cc=willy@infradead$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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