From: David Hildenbrand <david@redhat.com> To: Anshuman Khandual <anshuman.khandual@arm.com>, linux-mm@kvack.org, akpm@linux-foundation.org, hca@linux.ibm.com, catalin.marinas@arm.com Cc: linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, Vasily Gorbik <gor@linux.ibm.com>, Will Deacon <will@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, Mark Rutland <mark.rutland@arm.com> Subject: Re: [PATCH V2 1/3] mm/hotplug: Prevalidate the address range being added with platform Date: Mon, 11 Jan 2021 11:51:47 +0100 [thread overview] Message-ID: <10e733fa-4568-d38f-9b95-2ccc5dc627b8@redhat.com> (raw) In-Reply-To: <1608218912-28932-2-git-send-email-anshuman.khandual@arm.com> On 17.12.20 16:28, Anshuman Khandual wrote: > This introduces memhp_range_allowed() which can be called in various memory > hotplug paths to prevalidate the address range which is being added, with > the platform. Then memhp_range_allowed() calls memhp_get_pluggable_range() > which provides applicable address range depending on whether linear mapping > is required or not. For ranges that require linear mapping, it calls a new > arch callback arch_get_mappable_range() which the platform can override. So > the new callback, in turn provides the platform an opportunity to configure > acceptable memory hotplug address ranges in case there are constraints. > > This mechanism will help prevent platform specific errors deep down during > hotplug calls. This drops now redundant check_hotplug_memory_addressable() > check in __add_pages() but instead adds a VM_BUG_ON() check which would > ensure that the range has been validated with memhp_range_allowed() earlier > in the call chain. Besides memhp_get_pluggable_range() also can be used by > potential memory hotplug callers to avail the allowed physical range which > would go through on a given platform. > > This does not really add any new range check in generic memory hotplug but > instead compensates for lost checks in arch_add_memory() where applicable > and check_hotplug_memory_addressable(), with unified memhp_range_allowed(). > Subject s/mm\/hotplug/mm\/memory_hotplug/ Everywhere in this patch: Use "true/false" for boolean values. > Cc: David Hildenbrand <david@redhat.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Suggested-by: David Hildenbrand <david@redhat.com> > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > include/linux/memory_hotplug.h | 10 +++++ > mm/memory_hotplug.c | 79 +++++++++++++++++++++++++--------- > mm/memremap.c | 6 +++ > 3 files changed, 75 insertions(+), 20 deletions(-) > > diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h > index 551093b74596..8d72354758c8 100644 > --- a/include/linux/memory_hotplug.h > +++ b/include/linux/memory_hotplug.h > @@ -70,6 +70,9 @@ typedef int __bitwise mhp_t; > */ > #define MEMHP_MERGE_RESOURCE ((__force mhp_t)BIT(0)) > > +bool memhp_range_allowed(u64 start, u64 size, bool need_mapping); > +struct range memhp_get_pluggable_range(bool need_mapping); AFAIKs, all memhp_get_pluggable_range() users pass "1". What about the "add_pages()-only" path? -- Thanks, David / dhildenb
WARNING: multiple messages have this Message-ID (diff)
From: David Hildenbrand <david@redhat.com> To: Anshuman Khandual <anshuman.khandual@arm.com>, linux-mm@kvack.org, akpm@linux-foundation.org, hca@linux.ibm.com, catalin.marinas@arm.com Cc: Mark Rutland <mark.rutland@arm.com>, linux-s390@vger.kernel.org, Vasily Gorbik <gor@linux.ibm.com>, linux-kernel@vger.kernel.org, Will Deacon <will@kernel.org>, Ard Biesheuvel <ardb@kernel.org>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH V2 1/3] mm/hotplug: Prevalidate the address range being added with platform Date: Mon, 11 Jan 2021 11:51:47 +0100 [thread overview] Message-ID: <10e733fa-4568-d38f-9b95-2ccc5dc627b8@redhat.com> (raw) In-Reply-To: <1608218912-28932-2-git-send-email-anshuman.khandual@arm.com> On 17.12.20 16:28, Anshuman Khandual wrote: > This introduces memhp_range_allowed() which can be called in various memory > hotplug paths to prevalidate the address range which is being added, with > the platform. Then memhp_range_allowed() calls memhp_get_pluggable_range() > which provides applicable address range depending on whether linear mapping > is required or not. For ranges that require linear mapping, it calls a new > arch callback arch_get_mappable_range() which the platform can override. So > the new callback, in turn provides the platform an opportunity to configure > acceptable memory hotplug address ranges in case there are constraints. > > This mechanism will help prevent platform specific errors deep down during > hotplug calls. This drops now redundant check_hotplug_memory_addressable() > check in __add_pages() but instead adds a VM_BUG_ON() check which would > ensure that the range has been validated with memhp_range_allowed() earlier > in the call chain. Besides memhp_get_pluggable_range() also can be used by > potential memory hotplug callers to avail the allowed physical range which > would go through on a given platform. > > This does not really add any new range check in generic memory hotplug but > instead compensates for lost checks in arch_add_memory() where applicable > and check_hotplug_memory_addressable(), with unified memhp_range_allowed(). > Subject s/mm\/hotplug/mm\/memory_hotplug/ Everywhere in this patch: Use "true/false" for boolean values. > Cc: David Hildenbrand <david@redhat.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Suggested-by: David Hildenbrand <david@redhat.com> > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > include/linux/memory_hotplug.h | 10 +++++ > mm/memory_hotplug.c | 79 +++++++++++++++++++++++++--------- > mm/memremap.c | 6 +++ > 3 files changed, 75 insertions(+), 20 deletions(-) > > diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h > index 551093b74596..8d72354758c8 100644 > --- a/include/linux/memory_hotplug.h > +++ b/include/linux/memory_hotplug.h > @@ -70,6 +70,9 @@ typedef int __bitwise mhp_t; > */ > #define MEMHP_MERGE_RESOURCE ((__force mhp_t)BIT(0)) > > +bool memhp_range_allowed(u64 start, u64 size, bool need_mapping); > +struct range memhp_get_pluggable_range(bool need_mapping); AFAIKs, all memhp_get_pluggable_range() users pass "1". What about the "add_pages()-only" path? -- Thanks, David / dhildenb _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-01-11 10:53 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-17 15:28 [PATCH V2 0/3] mm/hotplug: Pre-validate the address range with platform Anshuman Khandual 2020-12-17 15:28 ` Anshuman Khandual 2020-12-17 15:28 ` [PATCH V2 1/3] mm/hotplug: Prevalidate the address range being added " Anshuman Khandual 2020-12-17 15:28 ` Anshuman Khandual 2021-01-11 10:51 ` David Hildenbrand [this message] 2021-01-11 10:51 ` David Hildenbrand 2021-01-11 13:43 ` Oscar Salvador 2021-01-11 13:43 ` Oscar Salvador 2021-01-12 3:51 ` Anshuman Khandual 2021-01-12 3:51 ` Anshuman Khandual 2021-01-12 10:09 ` David Hildenbrand 2021-01-12 10:09 ` David Hildenbrand 2021-01-13 5:04 ` Anshuman Khandual 2021-01-13 5:04 ` Anshuman Khandual 2021-01-12 3:43 ` Anshuman Khandual 2021-01-12 3:43 ` Anshuman Khandual 2020-12-17 15:28 ` [PATCH V2 2/3] arm64/mm: Define arch_get_mappable_range() Anshuman Khandual 2020-12-17 15:28 ` Anshuman Khandual 2020-12-17 15:28 ` [PATCH V2 3/3] s390/mm: " Anshuman Khandual 2020-12-17 15:28 ` Anshuman Khandual 2021-01-11 10:40 ` David Hildenbrand 2021-01-11 10:40 ` David Hildenbrand 2021-01-13 7:02 ` Anshuman Khandual 2021-01-13 7:02 ` Anshuman Khandual 2020-12-17 17:31 ` [PATCH V2 0/3] mm/hotplug: Pre-validate the address range with platform David Hildenbrand 2020-12-17 17:31 ` David Hildenbrand 2021-01-11 12:41 ` [PATCH RFC] virtio-mem: check against memhp_get_pluggable_range() which memory we can hotplug David Hildenbrand 2021-01-11 19:49 ` kernel test robot 2021-01-12 4:25 ` Anshuman Khandual
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=10e733fa-4568-d38f-9b95-2ccc5dc627b8@redhat.com \ --to=david@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=anshuman.khandual@arm.com \ --cc=ardb@kernel.org \ --cc=catalin.marinas@arm.com \ --cc=gor@linux.ibm.com \ --cc=hca@linux.ibm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-s390@vger.kernel.org \ --cc=mark.rutland@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: linkBe 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.