Messages in this thread | | | Date | Thu, 30 Apr 2015 09:45:58 +0100 | From | Mel Gorman <> | Subject | Re: [PATCH 07/13] mm: meminit: Initialise a subset of struct pages if CONFIG_DEFERRED_STRUCT_PAGE_INIT is set |
| |
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@suse.de> 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
| |