David Vrabel <david.vrabel@xxxxxxxxxx> 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@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>