Thread (25 messages) 25 messages, 4 authors, 2021-04-16

Re: [RFC/RFT PATCH 0/3] arm64: drop pfn_valid_within() and simplify pfn_valid()

From: Mike Rapoport <rppt@kernel.org>
Date: 2021-04-08 06:28:05
Also in: kvmarm, linux-mm, lkml

On Thu, Apr 08, 2021 at 10:49:02AM +0530, Anshuman Khandual wrote:
Adding James here.

+ James Morse [off-list ref]

On 4/7/21 10:56 PM, Mike Rapoport wrote:
quoted
From: Mike Rapoport <redacted>

Hi,

These patches aim to remove CONFIG_HOLES_IN_ZONE and essentially hardwire
pfn_valid_within() to 1. 
That would be really great for arm64 platform as it will save CPU cycles on
many generic MM paths, given that our pfn_valid() has been expensive.
quoted
The idea is to mark NOMAP pages as reserved in the memory map and restore
Though I am not really sure, would that possibly be problematic for UEFI/EFI
use cases as it might have just treated them as normal struct pages till now.
I don't think there should be a problem because now the struct pages for
UEFI/ACPI never got to be used by the core mm. They were (rightfully)
skipped by memblock_free_all() from one side and pfn_valid() and
pfn_valid_within() return false for them in various pfn walkers from the
other side.
 
quoted
the intended semantics of pfn_valid() to designate availability of struct
page for a pfn.
Right, that would be better as the current semantics is not ideal.
quoted
With this the core mm will be able to cope with the fact that it cannot use
NOMAP pages and the holes created by NOMAP ranges within MAX_ORDER blocks
will be treated correctly even without the need for pfn_valid_within.

The patches are only boot tested on qemu-system-aarch64 so I'd really
appreciate memory stress tests on real hardware.
Did some preliminary memory stress tests on a guest with portions of memory
marked as MEMBLOCK_NOMAP and did not find any obvious problem. But this might
require some testing on real UEFI environment with firmware using MEMBLOCK_NOMAP
memory to make sure that changing these struct pages to PageReserved() is safe.
I surely have no access for such machines :)
 
quoted
If this actually works we'll be one step closer to drop custom pfn_valid()
on arm64 altogether.
Right, planning to rework and respin the RFC originally sent last month.

https://patchwork.kernel.org/project/linux-mm/patch/1615174073-10520-1-git-send-email-anshuman.khandual@arm.com/
-- 
Sincerely yours,
Mike.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help