All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: Mike Rapoport <rppt@kernel.org>, linux-arm-kernel@lists.infradead.org
Cc: Ard Biesheuvel <ardb@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	David Hildenbrand <david@redhat.com>,
	Marc Zyngier <maz@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Mike Rapoport <rppt@linux.ibm.com>, Will Deacon <will@kernel.org>,
	kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, James Morse <james.morse@arm.com>
Subject: Re: [RFC/RFT PATCH 0/3] arm64: drop pfn_valid_within() and simplify pfn_valid()
Date: Thu, 8 Apr 2021 10:49:02 +0530	[thread overview]
Message-ID: <2f68ea11-7c56-1c55-f0be-3aad7188c00a@arm.com> (raw)
In-Reply-To: <20210407172607.8812-1-rppt@kernel.org>

Adding James here.

+ James Morse <james.morse@arm.com>

On 4/7/21 10:56 PM, Mike Rapoport wrote:
> From: Mike Rapoport <rppt@linux.ibm.com>
> 
> 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.

> 
> 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.

> 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.

> 
> 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.


> 
> 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/

WARNING: multiple messages have this Message-ID (diff)
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: Mike Rapoport <rppt@kernel.org>, linux-arm-kernel@lists.infradead.org
Cc: David Hildenbrand <david@redhat.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	linux-kernel@vger.kernel.org, Mike Rapoport <rppt@linux.ibm.com>,
	linux-mm@kvack.org, kvmarm@lists.cs.columbia.edu,
	Marc Zyngier <maz@kernel.org>, Will Deacon <will@kernel.org>
Subject: Re: [RFC/RFT PATCH 0/3] arm64: drop pfn_valid_within() and simplify pfn_valid()
Date: Thu, 8 Apr 2021 10:49:02 +0530	[thread overview]
Message-ID: <2f68ea11-7c56-1c55-f0be-3aad7188c00a@arm.com> (raw)
In-Reply-To: <20210407172607.8812-1-rppt@kernel.org>

Adding James here.

+ James Morse <james.morse@arm.com>

On 4/7/21 10:56 PM, Mike Rapoport wrote:
> From: Mike Rapoport <rppt@linux.ibm.com>
> 
> 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.

> 
> 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.

> 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.

> 
> 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.


> 
> 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/
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

WARNING: multiple messages have this Message-ID (diff)
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: Mike Rapoport <rppt@kernel.org>, linux-arm-kernel@lists.infradead.org
Cc: Ard Biesheuvel <ardb@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	David Hildenbrand <david@redhat.com>,
	Marc Zyngier <maz@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Mike Rapoport <rppt@linux.ibm.com>, Will Deacon <will@kernel.org>,
	kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, James Morse <james.morse@arm.com>
Subject: Re: [RFC/RFT PATCH 0/3] arm64: drop pfn_valid_within() and simplify pfn_valid()
Date: Thu, 8 Apr 2021 10:49:02 +0530	[thread overview]
Message-ID: <2f68ea11-7c56-1c55-f0be-3aad7188c00a@arm.com> (raw)
In-Reply-To: <20210407172607.8812-1-rppt@kernel.org>

Adding James here.

+ James Morse <james.morse@arm.com>

On 4/7/21 10:56 PM, Mike Rapoport wrote:
> From: Mike Rapoport <rppt@linux.ibm.com>
> 
> 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.

> 
> 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.

> 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.

> 
> 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.


> 
> 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/

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-04-08  5:18 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-07 17:26 [RFC/RFT PATCH 0/3] arm64: drop pfn_valid_within() and simplify pfn_valid() Mike Rapoport
2021-04-07 17:26 ` Mike Rapoport
2021-04-07 17:26 ` Mike Rapoport
2021-04-07 17:26 ` [RFC/RFT PATCH 1/3] memblock: update initialization of reserved pages Mike Rapoport
2021-04-07 17:26   ` Mike Rapoport
2021-04-07 17:26   ` Mike Rapoport
2021-04-08  5:16   ` Anshuman Khandual
2021-04-08  5:16     ` Anshuman Khandual
2021-04-08  5:16     ` Anshuman Khandual
2021-04-08  5:48     ` Mike Rapoport
2021-04-08  5:48       ` Mike Rapoport
2021-04-08  5:48       ` Mike Rapoport
2021-04-14 15:12   ` David Hildenbrand
2021-04-14 15:12     ` David Hildenbrand
2021-04-14 15:12     ` David Hildenbrand
2021-04-14 15:27     ` Ard Biesheuvel
2021-04-14 15:27       ` Ard Biesheuvel
2021-04-14 15:27       ` Ard Biesheuvel
2021-04-14 15:27       ` Ard Biesheuvel
2021-04-14 15:52       ` David Hildenbrand
2021-04-14 15:52         ` David Hildenbrand
2021-04-14 15:52         ` David Hildenbrand
2021-04-14 20:24         ` Mike Rapoport
2021-04-14 20:24           ` Mike Rapoport
2021-04-14 20:24           ` Mike Rapoport
2021-04-15  9:30           ` David Hildenbrand
2021-04-15  9:30             ` David Hildenbrand
2021-04-15  9:30             ` David Hildenbrand
2021-04-16 11:44             ` Mike Rapoport
2021-04-16 11:44               ` Mike Rapoport
2021-04-16 11:44               ` Mike Rapoport
2021-04-16 11:54               ` David Hildenbrand
2021-04-16 11:54                 ` David Hildenbrand
2021-04-16 11:54                 ` David Hildenbrand
2021-04-14 20:11       ` Mike Rapoport
2021-04-14 20:11         ` Mike Rapoport
2021-04-14 20:11         ` Mike Rapoport
2021-04-14 20:06     ` Mike Rapoport
2021-04-14 20:06       ` Mike Rapoport
2021-04-14 20:06       ` Mike Rapoport
2021-04-14 20:09       ` David Hildenbrand
2021-04-14 20:09         ` David Hildenbrand
2021-04-07 17:26 ` [RFC/RFT PATCH 2/3] arm64: decouple check whether pfn is normal memory from pfn_valid() Mike Rapoport
2021-04-07 17:26   ` Mike Rapoport
2021-04-07 17:26   ` Mike Rapoport
2021-04-08  5:14   ` Anshuman Khandual
2021-04-08  5:14     ` Anshuman Khandual
2021-04-08  5:14     ` Anshuman Khandual
2021-04-08  6:00     ` Mike Rapoport
2021-04-08  6:00       ` Mike Rapoport
2021-04-08  6:00       ` Mike Rapoport
2021-04-14 15:58     ` David Hildenbrand
2021-04-14 15:58       ` David Hildenbrand
2021-04-14 15:58       ` David Hildenbrand
2021-04-14 20:29       ` Mike Rapoport
2021-04-14 20:29         ` Mike Rapoport
2021-04-14 20:29         ` Mike Rapoport
2021-04-15  9:31         ` David Hildenbrand
2021-04-15  9:31           ` David Hildenbrand
2021-04-15  9:31           ` David Hildenbrand
2021-04-16 11:40           ` Mike Rapoport
2021-04-16 11:40             ` Mike Rapoport
2021-04-16 11:40             ` Mike Rapoport
2021-04-07 17:26 ` [RFC/RFT PATCH 3/3] arm64: drop pfn_valid_within() and simplify pfn_valid() Mike Rapoport
2021-04-07 17:26   ` Mike Rapoport
2021-04-07 17:26   ` Mike Rapoport
2021-04-08  5:12   ` Anshuman Khandual
2021-04-08  5:12     ` Anshuman Khandual
2021-04-08  5:12     ` Anshuman Khandual
2021-04-08  6:17     ` Mike Rapoport
2021-04-08  6:17       ` Mike Rapoport
2021-04-08  6:17       ` Mike Rapoport
2021-04-08  5:19 ` Anshuman Khandual [this message]
2021-04-08  5:19   ` [RFC/RFT PATCH 0/3] " Anshuman Khandual
2021-04-08  5:19   ` Anshuman Khandual
2021-04-08  6:27   ` Mike Rapoport
2021-04-08  6:27     ` Mike Rapoport
2021-04-08  6:27     ` Mike Rapoport

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=2f68ea11-7c56-1c55-f0be-3aad7188c00a@arm.com \
    --to=anshuman.khandual@arm.com \
    --cc=ardb@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=david@redhat.com \
    --cc=james.morse@arm.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=rppt@kernel.org \
    --cc=rppt@linux.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.