[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87y4corthl.fsf@vitty.brq.redhat.com>
Date: Mon, 21 Dec 2015 11:22:46 +0100
From: Vitaly Kuznetsov <vkuznets@...hat.com>
To: David Vrabel <david.vrabel@...rix.com>
Cc: <linux-mm@...ck.org>, <linux-kernel@...r.kernel.org>,
<linux-doc@...r.kernel.org>, "Jonathan Corbet" <corbet@....net>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Daniel Kiper <daniel.kiper@...cle.com>,
Dan Williams <dan.j.williams@...el.com>,
Tang Chen <tangchen@...fujitsu.com>,
"David Rientjes" <rientjes@...gle.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Naoya Horiguchi <n-horiguchi@...jp.nec.com>,
Xishi Qiu <qiuxishi@...wei.com>,
Mel Gorman <mgorman@...hsingularity.net>,
"K. Y. Srinivasan" <kys@...rosoft.com>,
Igor Mammedov <imammedo@...hat.com>, Kay Sievers <kay@...y.org>
Subject: Re: [PATCH] memory-hotplug: add automatic onlining policy for the newly added memory
David Vrabel <david.vrabel@...rix.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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists