On Wed, Apr 29, 2015 at 02:19:01PM -0700, Andrew Morton wrote: > On Tue, 28 Apr 2015 15:37:04 +0100 Mel Gorman <mgorman@xxxxxxx> wrote: > > > +/* > > + * 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. > > + */ > > +#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT > > +#define __defermem_init __meminit > > +#define __defer_init __meminit > > +#else > > +#define __defermem_init > > +#define __defer_init __init > > +#endif > > I still don't get it :( > This version was sent out at roughly the same minute you asked the time before so the comment was not updated. I suggested this as a possible alternative. /* * Deferred struct page initialisation requires init functions that are freed * before kswapd is available. Reuse the memory hotplug section annotation * to mark the required code. * * __defermem_init is code that always exists but is annotated __meminit * to * avoid section warnings. * __defer_init code gets marked __meminit when deferring struct page * initialistion but is otherwise in the init section. */ Suggestions on better names are welcome. > __defermem_init: > > if (CONFIG_DEFERRED_STRUCT_PAGE_INIT) { > if (CONFIG_MEMORY_HOTPLUG) > retain > } else { > retain > } > > but CONFIG_DEFERRED_STRUCT_PAGE_INIT depends on > CONFIG_MEMORY_HOTPLUG, so this becomes > > if (CONFIG_DEFERRED_STRUCT_PAGE_INIT) { > retain > } else { > retain > } > > which becomes > > retain > > so why does __defermem_init exist? > It suppresses section warnings. Another possibility is that I get rid of it entirely and use __refok but I feared that it might hide a real problem in the future. -- 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>