Messages in this thread | | | Date | Fri, 27 Jul 2018 17:07:30 +0200 | From | Oscar Salvador <> | Subject | Re: [PATCH v2 2/3] mm: calculate deferred pages after skipping mirrored memory |
| |
On Fri, Jul 27, 2018 at 10:53:24AM -0400, Pavel Tatashin wrote: > unsigned long *nr_initialised) > > > +static bool __meminit > > > +defer_init(int nid, unsigned long pfn, unsigned long end_pfn) > > > > Hi Pavel, > > > > maybe I do not understand properly the __init/__meminit macros, but should not > > "defer_init" be __init instead of __meminit? > > I think that functions marked as __meminit are not freed up, right? > > Not exactly. As I understand: __meminit is the same as __init when > CONFIG_MEMORY_HOTPLUG=n. But, when memory hotplug is configured, > __meminit is not freed, because code that adds memory is shared > between boot and hotplug. In this case defer_init() is called only > during boot, and could be __init, but it is called from > memmap_init_zone() which is __meminit and thus section mismatch would > happen.
Oh yes, I did not think about memmap_init_zone(), you are right. Then, nothing to argue about ;-).
Thanks -- Oscar Salvador SUSE L3
| |