From: "Arnd Bergmann" <arnd@arndb.de>
To: "Giulio Benetti" <giulio.benetti@benettiengineering.com>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Cc: "Russell King" <linux@armlinux.org.uk>,
"Anshuman Khandual" <anshuman.khandual@arm.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Kefeng Wang" <wangkefeng.wang@huawei.com>,
"Russell King" <rmk+kernel@armlinux.org.uk>,
"Will Deacon" <will@kernel.org>
Subject: Re: [PATCH] ARM: mm: fix no-MMU ZERO_PAGE() implementation
Date: Wed, 19 Oct 2022 09:00:25 +0200 [thread overview]
Message-ID: <e98b0727-5a5b-4f1d-bbf6-1194e6df299a@app.fastmail.com> (raw)
In-Reply-To: <3fc711c8-4981-26f7-689c-549bdafa40ac@benettiengineering.com>
On Wed, Oct 19, 2022, at 00:32, Giulio Benetti wrote:
> On 18/10/22 20:35, Arnd Bergmann wrote:
>> On Tue, Oct 18, 2022, at 19:44, Giulio Benetti wrote:
>>> On 18/10/22 09:03, Arnd Bergmann wrote:
>>>> In addition to your fix, I see that arm is the only architecture
>>>> that defines 'empty_zero_page' as a pointer to the page, when
>>>> everything else just makes it a pointer to the data itself,
>>>> or an 'extern char empty_zero_page[]' array, which we may want
>>>> to change for consistency.
>>>
>>> I was about doing it, but then I tought to move one piece at a time.
>>
>> Right, it would definitely be a separate patch, but it
>> can be a series of two patches. We probably wouldn't need to
>> backport the second patch that turns it into a static allocation.
>
> I've sent the patchset of 2:
> https://lore.kernel.org/all/20221018222503.90118-1-giulio.benetti@benettiengineering.com/T/#t
>
> I'm wondering if it makes sense to send a patchset for all those
> architectures that have only one zero page. I've seen that for example
> loongarch has more than one. But for the others I find the array
> approach more linear, with less code all around and a bit faster in term
> of code execution(of course really few, but better than nothing) since
> that array is in .bss, so it will be zeroed earlier during a long
> "memset" where assembly instructions for zeroing 8 bytes at a time are
> used. What about this?
The initial zeroing should not matter at all in terms of performance,
I think the only question is whether one wants a single zero page
to be used everywhere or one per NUMA node to give better locality
for a cache miss.
My guess is that for a system with 4KB pages, all the data
in the zero page are typically available in a CPU cache already,
so it doesn't matter, but it's possible that some machines benefit
from having per-node pages when the page size isn't tiny compared
to the typical cache sizes.
We should probably not touch this for any of the other architectures.
Arnd
next prev parent reply other threads:[~2022-10-19 7:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-17 23:37 [PATCH] ARM: mm: fix no-MMU ZERO_PAGE() implementation Giulio Benetti
2022-10-18 7:03 ` Arnd Bergmann
2022-10-18 17:44 ` Giulio Benetti
2022-10-18 18:35 ` Arnd Bergmann
2022-10-18 22:32 ` Giulio Benetti
2022-10-19 7:00 ` Arnd Bergmann [this message]
2022-10-19 16:37 ` Giulio Benetti
2022-10-19 9:09 ` Russell King (Oracle)
2022-10-19 9:32 ` Arnd Bergmann
2022-10-19 17:07 ` Giulio Benetti
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=e98b0727-5a5b-4f1d-bbf6-1194e6df299a@app.fastmail.com \
--to=arnd@arndb.de \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=giulio.benetti@benettiengineering.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=rmk+kernel@armlinux.org.uk \
--cc=wangkefeng.wang@huawei.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;
as well as URLs for NNTP newsgroup(s).