All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: David Vrabel <david.vrabel@citrix.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Daniel Kiper <daniel.kiper@oracle.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Tang Chen <tangchen@cn.fujitsu.com>,
	David Rientjes <rientjes@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Xishi Qiu <qiuxishi@huawei.com>,
	Mel Gorman <mgorman@techsingularity.net>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Igor Mammedov <imammedo@redhat.com>, Kay Sievers <kay@vrfy.org>
Subject: Re: [PATCH] memory-hotplug: add automatic onlining policy for the newly added memory
Date: Mon, 21 Dec 2015 11:22:46 +0100	[thread overview]
Message-ID: <87y4corthl.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <56743A00.4020503@citrix.com> (David Vrabel's message of "Fri, 18 Dec 2015 16:53:20 +0000")

David Vrabel <david.vrabel@citrix.com> writes:

> On 18/12/15 16:45, Vitaly Kuznetsov wrote:
>> Currently, all newly added memory blocks remain in 'offline' state unless
>> someone onlines them, some linux distributions carry special udev rules
>> like:
>> 
>> SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online"
>> 
>> to make this happen automatically. This is not a great solution for virtual
>> machines where memory hotplug is being used to address high memory pressure
>> situations as such onlining is slow and a userspace process doing this
>> (udev) has a chance of being killed by the OOM killer as it will probably
>> require to allocate some memory.
>> 
>> Introduce default policy for the newly added memory blocks in
>> /sys/devices/system/memory/hotplug_autoonline file with two possible
>> values: "offline" which preserves the current behavior and "online" which
>> causes all newly added memory blocks to go online as soon as they're added.
>> The default is "online" when MEMORY_HOTPLUG_AUTOONLINE kernel config option
>> is selected.
>
> FWIW, I'd prefer it if the caller of add_memory_resource() could specify
> that it wants the new memory automatically onlined.
>

Oh, I missed the fact that add_memory_resource() is also called directly
from Xen balloon driver. I can change the interface and move the policy
check to add_memory() then.

> I'm not sure just having one knob is appropriate -- there are different
> sorts of memory that can be added.  e,g., in the Xen balloon driver we
> use the memory add infrastructure to add empty pages (pages with no
> machine pages backing them) for mapping things into, as well as adding
> regular pages.

But all this memory still appears in /sys/devices/system/memory/* and
someone (e.g. - a udev rule) can still try to online it, right? Actually
Hyper-V driver does something similar when adding partially populated
memory blocks and it registers a special callback (hv_online_page()) to
prevent non-populated pages from onlining.

-- 
  Vitaly

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: David Vrabel <david.vrabel@citrix.com>
Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, "Jonathan Corbet" <corbet@lwn.net>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Daniel Kiper <daniel.kiper@oracle.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Tang Chen <tangchen@cn.fujitsu.com>,
	"David Rientjes" <rientjes@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
	Xishi Qiu <qiuxishi@huawei.com>,
	Mel Gorman <mgorman@techsingularity.net>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Igor Mammedov <imammedo@redhat.com>, Kay Sievers <kay@vrfy.org>
Subject: Re: [PATCH] memory-hotplug: add automatic onlining policy for the newly added memory
Date: Mon, 21 Dec 2015 11:22:46 +0100	[thread overview]
Message-ID: <87y4corthl.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <56743A00.4020503@citrix.com> (David Vrabel's message of "Fri, 18 Dec 2015 16:53:20 +0000")

David Vrabel <david.vrabel@citrix.com> writes:

> On 18/12/15 16:45, Vitaly Kuznetsov wrote:
>> Currently, all newly added memory blocks remain in 'offline' state unless
>> someone onlines them, some linux distributions carry special udev rules
>> like:
>> 
>> SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online"
>> 
>> to make this happen automatically. This is not a great solution for virtual
>> machines where memory hotplug is being used to address high memory pressure
>> situations as such onlining is slow and a userspace process doing this
>> (udev) has a chance of being killed by the OOM killer as it will probably
>> require to allocate some memory.
>> 
>> Introduce default policy for the newly added memory blocks in
>> /sys/devices/system/memory/hotplug_autoonline file with two possible
>> values: "offline" which preserves the current behavior and "online" which
>> causes all newly added memory blocks to go online as soon as they're added.
>> The default is "online" when MEMORY_HOTPLUG_AUTOONLINE kernel config option
>> is selected.
>
> FWIW, I'd prefer it if the caller of add_memory_resource() could specify
> that it wants the new memory automatically onlined.
>

Oh, I missed the fact that add_memory_resource() is also called directly
from Xen balloon driver. I can change the interface and move the policy
check to add_memory() then.

> I'm not sure just having one knob is appropriate -- there are different
> sorts of memory that can be added.  e,g., in the Xen balloon driver we
> use the memory add infrastructure to add empty pages (pages with no
> machine pages backing them) for mapping things into, as well as adding
> regular pages.

But all this memory still appears in /sys/devices/system/memory/* and
someone (e.g. - a udev rule) can still try to online it, right? Actually
Hyper-V driver does something similar when adding partially populated
memory blocks and it registers a special callback (hv_online_page()) to
prevent non-populated pages from onlining.

-- 
  Vitaly

  reply	other threads:[~2015-12-21 10:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-18 16:45 [PATCH] memory-hotplug: add automatic onlining policy for the newly added memory Vitaly Kuznetsov
2015-12-18 16:45 ` Vitaly Kuznetsov
2015-12-18 16:53 ` David Vrabel
2015-12-18 16:53   ` David Vrabel
2015-12-21 10:22   ` Vitaly Kuznetsov [this message]
2015-12-21 10:22     ` Vitaly Kuznetsov

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=87y4corthl.fsf@vitty.brq.redhat.com \
    --to=vkuznets@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=dan.j.williams@intel.com \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=imammedo@redhat.com \
    --cc=kay@vrfy.org \
    --cc=kys@microsoft.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=qiuxishi@huawei.com \
    --cc=rientjes@google.com \
    --cc=tangchen@cn.fujitsu.com \
    /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.