From: Matthew Wilcox <willy@infradead.org>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@redhat.com>,
Dave Chinner <david@fromorbit.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: [PATCH v3] mm/filemap: Allow arch to request folio size for exec memory
Date: Thu, 27 Mar 2025 16:44:29 +0000 [thread overview]
Message-ID: <Z-WAbWfZzG1GA-4n@casper.infradead.org> (raw)
In-Reply-To: <20250327160700.1147155-1-ryan.roberts@arm.com>
On Thu, Mar 27, 2025 at 04:06:58PM +0000, Ryan Roberts wrote:
> So let's special-case the read(ahead) logic for executable mappings. The
> trade-off is performance improvement (due to more efficient storage of
> the translations in iTLB) vs potential read amplification (due to
> reading too much data around the fault which won't be used), and the
> latter is independent of base page size. I've chosen 64K folio size for
> arm64 which benefits both the 4K and 16K base page size configs and
> shouldn't lead to any read amplification in practice since the old
> read-around path was (usually) reading blocks of 128K. I don't
> anticipate any write amplification because text is always RO.
Is there not also the potential for wasted memory due to ELF alignment?
Kalesh talked about it in the MM BOF at the same time that Ted and I
were discussing it in the FS BOF. Some coordination required (like
maybe Kalesh could have mentioned it to me rathere than assuming I'd be
there?)
> +#define arch_exec_folio_order() ilog2(SZ_64K >> PAGE_SHIFT)
I don't think the "arch" really adds much value here.
#define exec_folio_order() get_order(SZ_64K)
> +#ifndef arch_exec_folio_order
> +/*
> + * Returns preferred minimum folio order for executable file-backed memory. Must
> + * be in range [0, PMD_ORDER]. Negative value implies that the HW has no
> + * preference and mm will not special-case executable memory in the pagecache.
> + */
> +static inline int arch_exec_folio_order(void)
> +{
> + return -1;
> +}
This feels a bit fragile. I often expect to be able to store an order
in an unsigned int. Why not return 0 instead?
next prev parent reply other threads:[~2025-03-27 16:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-27 16:06 Ryan Roberts
2025-03-27 16:44 ` Matthew Wilcox [this message]
2025-03-27 20:23 ` Ryan Roberts
2025-03-28 19:14 ` Matthew Wilcox
2025-03-29 10:07 ` Ryan Roberts
2025-04-01 7:19 ` Kalesh Singh
2025-04-01 10:35 ` Ryan Roberts
2025-04-01 17:55 ` Kalesh Singh
2025-04-02 13:40 ` Ryan Roberts
2025-03-28 0:07 ` Zi Yan
2025-03-28 13:09 ` Ryan Roberts
2025-03-28 13:32 ` Zi Yan
2025-03-28 13:50 ` Ryan Roberts
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=Z-WAbWfZzG1GA-4n@casper.infradead.org \
--to=willy@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=catalin.marinas@arm.com \
--cc=david@fromorbit.com \
--cc=david@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ryan.roberts@arm.com \
--cc=will@kernel.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