On Tue, Aug 08, 2023 at 11:08:36AM +0800, Miaohe Lin wrote: > On 2023/8/8 10:31, Matthew Wilcox wrote: > > On Tue, Aug 08, 2023 at 09:58:31AM +0800, Miaohe Lin wrote: > >> kswapd_stop() and kcompactd_stop() are only called when MEMORY_HOTREMOVE > >> is enabled. So wrap them under CONFIG_MEMORY_HOTREMOVE and further remove > >> __meminit annotation. No functional change intended. > > > > I don't understand why this is an improvement. If CONFIG_MEMORY_HOTREMOVE > > is disabled, the linker drops this section (... right?) If it's enabled, > > When CONFIG_MEMORY_HOTREMOVE is disabled, without this patch: > > size mm/compaction.o > text data bss dec hex filename > 103164 30873 0 134037 20b95 mm/compaction.o > > size mm/vmscan.o > text data bss dec hex filename > 158775 49612 64 208451 32e43 mm/vmscan.o > > while with this patch: > > size mm/compaction.o > text data bss dec hex filename > 102915 30865 0 133780 20a94 mm/compaction.o > > size mm/vmscan.o > text data bss dec hex filename > 158534 49604 64 208202 32d4a mm/vmscan.o > > We can reduce each .o by ~250 bytes. But this is before the linker step! That will be where the meminit sections get dropped. Assuming they are; I haven't verified. You need to compare before/after of the vmlinux, not the individual .o files.