From: David Hildenbrand <david@redhat.com>
To: Oscar Salvador <osalvador@suse.de>, linux-mm@kvack.org
Cc: mhocko@suse.com, dan.j.williams@intel.com,
Pavel.Tatashin@microsoft.com, linux-kernel@vger.kernel.org,
dave.hansen@intel.com
Subject: Re: [RFC PATCH v2 0/4] mm, memory_hotplug: allocate memmap from hotadded memory
Date: Fri, 25 Jan 2019 09:53:35 +0100 [thread overview]
Message-ID: <d9dbefb8-052e-7cb5-3de4-245d05270ff9@redhat.com> (raw)
In-Reply-To: <20190122103708.11043-1-osalvador@suse.de>
On 22.01.19 11:37, Oscar Salvador wrote:
> Hi,
>
> this is the v2 of the first RFC I sent back then in October [1].
> In this new version I tried to reduce the complexity as much as possible,
> plus some clean ups.
>
> [Testing]
>
> I have tested it on "x86_64" (small/big memblocks) and on "powerpc".
> On both architectures hot-add/hot-remove online/offline operations
> worked as expected using vmemmap pages, I have not seen any issues so far.
> I wanted to try it out on Hyper-V/Xen, but I did not manage to.
> I plan to do so along this week (if time allows).
> I would also like to test it on arm64, but I am not sure I can grab
> an arm64 box anytime soon.
>
> [Coverletter]:
>
> This is another step to make the memory hotplug more usable. The primary
> goal of this patchset is to reduce memory overhead of the hot added
> memory (at least for SPARSE_VMEMMAP memory model). The current way we use
> to populate memmap (struct page array) has two main drawbacks:
>
> a) it consumes an additional memory until the hotadded memory itself is
> onlined and
> b) memmap might end up on a different numa node which is especially true
> for movable_node configuration.
>
> a) is problem especially for memory hotplug based memory "ballooning"
> solutions when the delay between physical memory hotplug and the
> onlining can lead to OOM and that led to introduction of hacks like auto
> onlining (see 31bc3858ea3e ("memory-hotplug: add automatic onlining
> policy for the newly added memory")).
>
> b) can have performance drawbacks.
>
> I have also seen hot-add operations failing on powerpc due to the fact
> that we try to use order-8 pages when populating the memmap array.
> Given 64KB base pagesize, that is 16MB.
> If we run out of those, we just fail the operation and we cannot add
> more memory.
> We could fallback to base pages as x86_64 does, but we can do better.
>
> One way to mitigate all these issues is to simply allocate memmap array
> (which is the largest memory footprint of the physical memory hotplug)
> from the hotadded memory itself. VMEMMAP memory model allows us to map
> any pfn range so the memory doesn't need to be online to be usable
> for the array. See patch 3 for more details. In short I am reusing an
> existing vmem_altmap which wants to achieve the same thing for nvdim
> device memory.
>
I only had a quick glimpse. I would prefer if the caller of add_memory()
can specify whether it would be ok to allocate vmmap from the range.
This e.g. allows ACPI dimm code to allocate from the range, however
other machanisms (XEN, hyper-v, virtio-mem) can allow it once they
actually support it.
Also, while s390x standby memory cannot support allocating from the
range, virtio-mem could easily support it on s390x.
Not sure how such an interface could look like, but I would really like
to have control over that on the add_memory() interface, not per arch.
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2019-01-25 8:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-22 10:37 Oscar Salvador
2019-01-22 10:37 ` [RFC PATCH v2 1/4] mm, memory_hotplug: cleanup memory offline path Oscar Salvador
2019-01-22 10:37 ` [RFC PATCH v2 2/4] mm, memory_hotplug: provide a more generic restrictions for memory hotplug Oscar Salvador
2019-01-22 10:37 ` [RFC PATCH v2 3/4] mm, memory_hotplug: allocate memmap from the added memory range for sparse-vmemmap Oscar Salvador
2019-01-22 10:37 ` [RFC PATCH v2 4/4] mm, sparse: rename kmalloc_section_memmap, __kfree_section_memmap Oscar Salvador
2019-01-25 8:53 ` David Hildenbrand [this message]
2019-01-29 8:43 ` [RFC PATCH v2 0/4] mm, memory_hotplug: allocate memmap from hotadded memory Oscar Salvador
2019-01-29 10:08 ` David Hildenbrand
2019-01-30 21:52 ` Oscar Salvador
2019-01-31 7:23 ` Michal Hocko
2019-01-31 8:03 ` Oscar Salvador
2019-02-12 12:47 ` Jonathan Cameron
2019-02-12 13:21 ` Shameerali Kolothum Thodi
2019-02-12 13:56 ` Oscar Salvador
2019-02-12 14:42 ` Michal Hocko
2019-02-12 14:50 ` Oscar Salvador
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=d9dbefb8-052e-7cb5-3de4-245d05270ff9@redhat.com \
--to=david@redhat.com \
--cc=Pavel.Tatashin@microsoft.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=osalvador@suse.de \
/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