Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751351AbbLUKWy (ORCPT ); Mon, 21 Dec 2015 05:22:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38904 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751074AbbLUKWx (ORCPT ); Mon, 21 Dec 2015 05:22:53 -0500 From: Vitaly Kuznetsov To: David Vrabel Cc: , , , "Jonathan Corbet" , Greg Kroah-Hartman , Daniel Kiper , Dan Williams , Tang Chen , "David Rientjes" , Andrew Morton , Naoya Horiguchi , Xishi Qiu , Mel Gorman , "K. Y. Srinivasan" , Igor Mammedov , Kay Sievers Subject: Re: [PATCH] memory-hotplug: add automatic onlining policy for the newly added memory References: <1450457155-31234-1-git-send-email-vkuznets@redhat.com> <56743A00.4020503@citrix.com> Date: Mon, 21 Dec 2015 11:22:46 +0100 In-Reply-To: <56743A00.4020503@citrix.com> (David Vrabel's message of "Fri, 18 Dec 2015 16:53:20 +0000") Message-ID: <87y4corthl.fsf@vitty.brq.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2286 Lines: 49 David Vrabel 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/