linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Michal Hocko <mhocko@kernel.org>
Cc: "Kate Stewart" <kstewart@linuxfoundation.org>,
	"Rich Felker" <dalias@libc.org>,
	linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Heiko Carstens" <heiko.carstens@de.ibm.com>,
	linux-mm@kvack.org, "Paul Mackerras" <paulus@samba.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Stephen Rothwell" <sfr@canb.auug.org.au>,
	"Rashmica Gupta" <rashmica.g@gmail.com>,
	"Dan Williams" <dan.j.williams@intel.com>,
	linux-s390@vger.kernel.org, "Michael Neuling" <mikey@neuling.org>,
	"Stephen Hemminger" <sthemmin@microsoft.com>,
	"Yoshinori Sato" <ysato@users.sourceforge.jp>,
	linux-acpi@vger.kernel.org, "Ingo Molnar" <mingo@redhat.com>,
	xen-devel@lists.xenproject.org, "Len Brown" <lenb@kernel.org>,
	"Pavel Tatashin" <pavel.tatashin@microsoft.com>,
	"Rob Herring" <robh@kernel.org>,
	"mike.travis@hpe.com" <mike.travis@hpe.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Jonathan Neuschäfer" <j.neuschaefer@gmx.net>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Martin Schwidefsky" <schwidefsky@de.ibm.com>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Mike Rapoport" <rppt@linux.vnet.ibm.com>,
	"Borislav Petkov" <bp@alien8.de>,
	"Andy Lutomirski" <luto@kernel.org>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Oscar Salvador" <osalvador@suse.de>,
	"Juergen Gross" <jgross@suse.com>,
	"Tony Luck" <tony.luck@intel.com>,
	"Mathieu Malaterre" <malat@debian.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-kernel@vger.kernel.org, "Fenghua Yu" <fenghua.yu@intel.com>,
	"Mauricio Faria de Oliveira" <mauricfo@linux.vnet.ibm.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Philippe Ombredanne" <pombredanne@nexb.com>,
	"Joe Perches" <joe@perches.com>,
	devel@linuxdriverproject.org,
	"Joonsoo Kim" <iamjoonsoo.kim@lge.com>,
	linuxppc-dev@lists.ozlabs.org,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: [PATCH RFC] mm/memory_hotplug: Introduce memory block types
Date: Wed, 3 Oct 2018 19:14:05 +0200	[thread overview]
Message-ID: <06a35970-e478-18f8-eae6-4022925a5192@redhat.com> (raw)
In-Reply-To: <87tvm3cd5w.fsf@vitty.brq.redhat.com>

On 03/10/2018 16:34, Vitaly Kuznetsov wrote:
> Dave Hansen <dave.hansen@linux.intel.com> writes:
> 
>> On 10/03/2018 06:52 AM, Vitaly Kuznetsov wrote:
>>> It is more than just memmaps (e.g. forking udev process doing memory
>>> onlining also needs memory) but yes, the main idea is to make the
>>> onlining synchronous with hotplug.
>>
>> That's a good theoretical concern.
>>
>> But, is it a problem we need to solve in practice?
> 
> Yes, unfortunately. It was previously discovered that when we try to
> hotplug tons of memory to a low memory system (this is a common scenario
> with VMs) we end up with OOM because for all new memory blocks we need
> to allocate page tables, struct pages, ... and we need memory to do
> that. The userspace program doing memory onlining also needs memory to
> run and in case it prefers to fork to handle hundreds of notfifications
> ... well, it may get OOMkilled before it manages to online anything.
> 
> Allocating all kernel objects from the newly hotplugged blocks would
> definitely help to manage the situation but as I said this won't solve
> the 'forking udev' problem completely (it will likely remain in
> 'extreme' cases only. We can probably work around it by onlining with a
> dedicated process which doesn't do memory allocation).
> 

I guess the problem is even worse. We always have two phases

1. add memory - requires memory allocation
2. online memory - might require memory allocations e.g. for slab/slub

So if we just added memory but don't have sufficient memory to start a
user space process to trigger onlining, then we most likely also don't
have sufficient memory to online the memory right away (in some scenarios).

We would have to allocate all new memory for 1 and 2 from the memory to
be onlined. I guess the latter part is less trivial.

So while onlining the memory from the kernel might make things a little
more robust, we would still have the chance for OOM / onlining failing.

-- 

Thanks,

David / dhildenb

  reply	other threads:[~2018-10-03 17:23 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-28 15:03 [PATCH RFC] mm/memory_hotplug: Introduce memory block types David Hildenbrand
2018-09-28 17:02 ` Dave Hansen
2018-10-01  9:13   ` David Hildenbrand
2018-10-01 16:24     ` Dave Hansen
2018-10-04  7:48       ` David Hildenbrand
2018-10-01  8:40 ` Michal Hocko
2018-10-01  9:34   ` David Hildenbrand
2018-10-02 13:47     ` Michal Hocko
2018-10-02 15:25       ` David Hildenbrand
2018-10-03 13:38         ` Vitaly Kuznetsov
2018-10-03 13:44           ` Michal Hocko
2018-10-03 13:52             ` Vitaly Kuznetsov
2018-10-03 14:07               ` Dave Hansen
2018-10-03 14:34                 ` Vitaly Kuznetsov
2018-10-03 17:14                   ` David Hildenbrand [this message]
2018-10-04  6:19                     ` Michal Hocko
2018-10-04  8:13                       ` David Hildenbrand
2018-10-04 15:28                         ` Michal Suchánek
2018-10-04 15:45                           ` David Hildenbrand
2018-10-04 17:50                             ` Michal Suchánek
2018-10-05  7:37                               ` David Hildenbrand
2018-10-03 14:24               ` Michal Hocko
2018-10-03 17:06                 ` David Hildenbrand
2018-10-04  8:12                 ` David Hildenbrand
2018-10-03 13:54         ` Michal Hocko
2018-10-03 17:00           ` David Hildenbrand
2018-10-04  6:28             ` Michal Hocko
2018-10-04  7:40               ` David Hildenbrand
2018-11-23 11:13 ` David Hildenbrand
2018-11-23 18:06   ` Michal Suchánek
2018-11-26 12:30     ` David Hildenbrand
2018-11-26 13:33       ` David Hildenbrand
2018-11-26 14:20         ` Michal Suchánek
2018-11-26 15:59           ` David Hildenbrand
2018-11-27 16:32             ` Michal Suchánek
2018-11-27 16:47               ` David Hildenbrand

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=06a35970-e478-18f8-eae6-4022925a5192@redhat.com \
    --to=david@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=dalias@libc.org \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=devel@linuxdriverproject.org \
    --cc=fenghua.yu@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=haiyangz@microsoft.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=hpa@zytor.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=j.neuschaefer@gmx.net \
    --cc=jglisse@redhat.com \
    --cc=jgross@suse.com \
    --cc=joe@perches.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kstewart@linuxfoundation.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=malat@debian.org \
    --cc=mauricfo@linux.vnet.ibm.com \
    --cc=mhocko@kernel.org \
    --cc=mike.travis@hpe.com \
    --cc=mikey@neuling.org \
    --cc=mingo@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=osalvador@suse.de \
    --cc=paulus@samba.org \
    --cc=pavel.tatashin@microsoft.com \
    --cc=peterz@infradead.org \
    --cc=pombredanne@nexb.com \
    --cc=rashmica.g@gmail.com \
    --cc=rjw@rjwysocki.net \
    --cc=robh@kernel.org \
    --cc=rppt@linux.vnet.ibm.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=sfr@canb.auug.org.au \
    --cc=sthemmin@microsoft.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=vkuznets@redhat.com \
    --cc=xen-devel@lists.xenproject.org \
    --cc=ysato@users.sourceforge.jp \
    /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;
as well as URLs for NNTP newsgroup(s).