From: Matthew Wilcox <willy@infradead.org>
To: Khalid Aziz <khalid.aziz@oracle.com>,
Peter Xu <peterx@redhat.com>,
Vishal Moola <vishal.moola@gmail.com>,
Jane Chu <jane.chu@oracle.com>,
Muchun Song <muchun.song@linux.dev>
Cc: linux-mm@kvack.org
Subject: Unifying page table walkers
Date: Thu, 6 Jun 2024 19:29:22 +0100 [thread overview]
Message-ID: <ZmIAAjiO4AEd8-Jb@casper.infradead.org> (raw)
One of the things we discussed at LSFMM was unifying the hugetlb and
THP page table walkers. I've been looking into it some more recently;
I've found a problem and I think a solution.
The reason we have a separate hugetlb_entry from pmd_entry and pud_entry
is that it has a different locking context. It is called with the
hugetlb_vma_lock held for read (nb: this is not the same as the vma
lock; see walk_hugetlb_range()). Why do we need this? Because of page
table sharing.
In a completely separate discussion, I was talking with Khalid about
mshare() support for hugetlbfs, and I suggested that we permit hugetlbfs
pages to be mapped by a VMA which does not have the VM_HUGETLB flag set.
If we do that, the page tables would not be permitted to be shared with
other users of that hugetlbfs file. But we want to eliminate support
for that anyway, so that's more of a feature than a bug.
Once we don't use the VM_HUGETLB flag on these VMAs, that opens the
door to the other features we want, like mapping individual pages from
a hugetlb folio. And we can use the regular page table walkers for
these VMAs.
Is this a reasonable path forward, or have I overlooked something?
next reply other threads:[~2024-06-06 18:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-06 18:29 Matthew Wilcox [this message]
2024-06-06 19:30 ` James Houghton
2024-06-06 20:04 ` Matthew Wilcox
2024-06-06 20:23 ` James Houghton
2024-06-06 21:21 ` Matthew Wilcox
2024-06-06 23:07 ` James Houghton
2024-06-07 7:15 ` David Hildenbrand
2024-06-06 21:33 ` Peter Xu
2024-06-06 21:49 ` Peter Xu
2024-06-07 5:07 ` Oscar Salvador
2024-06-07 6:59 ` David Hildenbrand
2024-06-09 20:08 ` Matthew Wilcox
2024-06-09 20:28 ` David Hildenbrand
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=ZmIAAjiO4AEd8-Jb@casper.infradead.org \
--to=willy@infradead.org \
--cc=jane.chu@oracle.com \
--cc=khalid.aziz@oracle.com \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--cc=peterx@redhat.com \
--cc=vishal.moola@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox