lkml.org 
[lkml]   [2015]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] memory-hotplug: add automatic onlining policy for the newly added memory
Date
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


\
 
 \ /
  Last update: 2015-12-21 11:41    [W:0.093 / U:0.156 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site