From: Matthew Wilcox <willy@infradead.org>
To: Andrew Bresticker <abrestic@rivosinc.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@redhat.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] mm/memory: Don't require head page for do_set_pmd()
Date: Tue, 11 Jun 2024 19:03:29 +0100 [thread overview]
Message-ID: <ZmiRcUYxrZ5NQQX8@casper.infradead.org> (raw)
In-Reply-To: <20240611153216.2794513-1-abrestic@rivosinc.com>
On Tue, Jun 11, 2024 at 08:32:16AM -0700, Andrew Bresticker wrote:
> - if (page != &folio->page || folio_order(folio) != HPAGE_PMD_ORDER)
> + if (folio_order(folio) != HPAGE_PMD_ORDER)
> return ret;
> + page = &folio->page;
This works today, but in about six months time it's going to be a pain.
+ page = folio_page(folio, 0);
is the one which works today and in the future.
Of course, as I'm writing this now I'm thinking we could make this work
for folios which are larger than PMD size. Which we currently prohibit
(at least in part because this function doesn't work with folios larger
than PMD size)
pgoff_t idx = ((haddr - vma->vm_start) / PAGE_SIZE) + vma->vm_pgoff;
page = folio_file_page(folio, idx);
(there might be a more succinct way to write that, and I might have
messed up the polarity on something).
Worth starting to fix these places that don't work with folios larger
than PMD size? I think it'd be worth supporting, eg 4MB folios.
Current bandwidth of a gen5 x8 link is 32GB/s, so we can read 8,000
4MB pages/second at a latency of 125us. My laptop only has a gen4 x2
SSD, so a 4MB folio would take 1ms to read which might be a little
excessive for normal use. Of course allocating an order 10 folio is
hard, so it's not going to happen terribly often anyway.
next prev parent reply other threads:[~2024-06-11 18:03 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-11 15:32 Andrew Bresticker
2024-06-11 15:33 ` David Hildenbrand
2024-06-11 18:06 ` Andrew Morton
2024-06-11 18:22 ` Matthew Wilcox
2024-06-11 20:07 ` Andrew Morton
2024-06-11 21:18 ` Hugh Dickins
2024-06-12 18:41 ` David Hildenbrand
2024-08-19 8:16 ` Vincent Donnefort
2024-08-20 20:33 ` Hugh Dickins
2024-06-11 18:03 ` Matthew Wilcox [this message]
2024-06-11 18:21 ` Andrew Morton
2024-06-11 18:38 ` 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=ZmiRcUYxrZ5NQQX8@casper.infradead.org \
--to=willy@infradead.org \
--cc=abrestic@rivosinc.com \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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