On Mon, Apr 27, 2015 at 03:43:44PM -0700, Andrew Morton wrote: > On Thu, 23 Apr 2015 11:33:10 +0100 Mel Gorman <mgorman@xxxxxxx> wrote: > > > This patch initalises all low memory struct pages and 2G of the highest zone > > on each node during memory initialisation if CONFIG_DEFERRED_STRUCT_PAGE_INIT > > is set. That config option cannot be set but will be available in a later > > patch. Parallel initialisation of struct page depends on some features > > from memory hotplug and it is necessary to alter alter section annotations. > > > > ... > > > > +#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT > > +#define __defermem_init __meminit > > +#define __defer_init __meminit > > +#else > > +#define __defermem_init > > +#define __defer_init __init > > +#endif > > Could we get some comments describing these? What they do, when and > where they should be used. I have a suspicion that the naming isn't > good, but I didn't spend a lot of time reverse-engineering the > intent... > Of course. The next version will have +/* + * Deferred struct page initialisation requires some early init functions that + * are removed before kswapd is up and running. The feature depends on memory + * hotplug so put the data and code required by deferred initialisation into + * the __meminit section where they are preserved. + */ -- Mel Gorman SUSE Labs -- 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>