[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1606706992-26656-1-git-send-email-anshuman.khandual@arm.com>
Date: Mon, 30 Nov 2020 08:59:49 +0530
From: Anshuman Khandual <anshuman.khandual@....com>
To: linux-mm@...ck.org, akpm@...ux-foundation.org, david@...hat.com
Cc: linux-arm-kernel@...ts.infradead.org, linux-s390@...r.kernel.org,
linux-kernel@...r.kernel.org,
Anshuman Khandual <anshuman.khandual@....com>,
Heiko Carstens <hca@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Ard Biesheuvel <ardb@...nel.org>,
Mark Rutland <mark.rutland@....com>
Subject: [RFC V2 0/3] mm/hotplug: Pre-validate the address range with platform
This series adds a mechanism allowing platforms to weigh in and prevalidate
incoming address range before proceeding further with the memory hotplug.
This helps prevent potential platform errors for the given address range,
down the hotplug call chain, which inevitably fails the hotplug itself.
This mechanism was suggested by David Hildenbrand during another discussion
with respect to a memory hotplug fix on arm64 platform.
https://lore.kernel.org/linux-arm-kernel/1600332402-30123-1-git-send-email-anshuman.khandual@arm.com/
This mechanism focuses on the addressibility aspect and not [sub] section
alignment aspect. Hence check_hotplug_memory_range() and check_pfn_span()
have been left unchanged. Wondering if all these can still be unified in
an expanded memhp_range_allowed() check, that can be called from multiple
memory hot add and remove paths.
This series applies on v5.10-rc6 and has been slightly tested on arm64.
But looking for some early feedback here.
Changes in RFC V2:
Incorporated all review feedbacks from David.
- Added additional range check in __segment_load() on s390 which was lost
- Changed is_private init in pagemap_range()
- Moved the framework into mm/memory_hotplug.c
- Made arch_get_addressable_range() a __weak function
- Renamed arch_get_addressable_range() as arch_get_mappable_range()
- Callback arch_get_mappable_range() only handles range requiring linear mapping
- Merged multiple memhp_range_allowed() checks in register_memory_resource()
- Replaced WARN() with pr_warn() in memhp_range_allowed()
- Replaced error return code ERANGE with E2BIG
Changes in RFC V1:
https://lore.kernel.org/linux-mm/1606098529-7907-1-git-send-email-anshuman.khandual@arm.com/
Cc: Heiko Carstens <hca@...ux.ibm.com>
Cc: Vasily Gorbik <gor@...ux.ibm.com>
Cc: Catalin Marinas <catalin.marinas@....com>
Cc: Will Deacon <will@...nel.org>
Cc: Ard Biesheuvel <ardb@...nel.org>
Cc: Mark Rutland <mark.rutland@....com>
Cc: David Hildenbrand <david@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-arm-kernel@...ts.infradead.org
Cc: linux-s390@...r.kernel.org
Cc: linux-mm@...ck.org
Cc: linux-kernel@...r.kernel.org
Anshuman Khandual (3):
mm/hotplug: Prevalidate the address range being added with platform
arm64/mm: Define arch_get_mappable_range()
s390/mm: Define arch_get_mappable_range()
arch/arm64/mm/mmu.c | 14 +++----
arch/s390/mm/extmem.c | 5 +++
arch/s390/mm/vmem.c | 13 ++++--
include/linux/memory_hotplug.h | 2 +
mm/memory_hotplug.c | 77 +++++++++++++++++++++++++---------
mm/memremap.c | 6 ++-
6 files changed, 84 insertions(+), 33 deletions(-)
--
2.20.1
Powered by blists - more mailing lists