On Wed, 25 May 2011 00:27:33 +0200 Daniel Kiper <dkiper@xxxxxxxxxxxx> wrote: > This patch applies to Linus' git tree, git commit 98b98d316349e9a028e632629fe813d07fa5afdd > (Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6) > with a few prerequisite patches available at https://lkml.org/lkml/2011/5/2/296 > and https://lkml.org/lkml/2011/5/17/408 (all prerequisite patches were included in -mm tree). > > This patch contains online_page_callback and apropriate functions for > registering/unregistering online page callbacks. It allows to do some > machine specific tasks during online page stage which is required > to implement memory hotplug in virtual machines. Currently this patch > is required by latest memory hotplug support for Xen balloon driver > patch which will be posted soon. > > Additionally, originial online_page() function was splited into > following functions doing "atomic" operations: > - __online_page_set_limits() - set new limits for memory management code, > - __online_page_increment_counters() - increment totalram_pages and totalhigh_pages, > - __online_page_free() - free page to allocator. > > It was done to: > - not duplicate existing code, > - ease hotplug code devolpment by usage of well defined interface, > - avoid stupid bugs which are unavoidable when the same code > (by design) is developed in many places. I grabbed this and the xen patch. I assume that all prerequisites are now in mainline? Please give some thought to making this extra code Kconfigurable, and selected by Xen? See if we can avoid a bit of bloat for other kernel users. What is missing from the patchset is an explanation of why we should merge it ;) Why is this feature desirable? What value does it provide to our users? Why should we bother? Answering these questions in a form which can be pasted into the changelog would be convenient, thanks. Is there any propsect that the other virtualisation schemes will use this facility? If not, why not? > > ... > > @@ -388,7 +450,7 @@ static int online_pages_range(unsigned long start_pfn, unsigned long nr_pages, > if (PageReserved(pfn_to_page(start_pfn))) > for (i = 0; i < nr_pages; i++) { > page = pfn_to_page(start_pfn + i); > - online_page(page); > + online_page_callback(page); nit. I'll change this to (*online_page_callback)(page); because that syntax communicates some useful information to the reader. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>