Hi :) On Tue, Jul 17, 2012 at 1:49 AM, Aft nix <aftnix@xxxxxxxxx> wrote: > This special section, "data..read_mostly" , is it maintained by > kernel? by maintained, you mean allocated? then yes.... > then Linker has to know this information. How that is done? it is provided by the linker script.... the fastest I can find is in directory include/asm-generic/vmlinux.lds.h. This file is not final linker script, it's kinda a "template" that will be further modified by Kbuild (I guess) > I mean lets say a.c is compiled into a.o. a.o already has the offsets > for its data. Linker resolves the final address. So how the linker is > invoked > in a way so that this data flagged with __read__mostly will end up in > the special section? it's actually the same like putting your initialized variable in .data section, your code in .text and so on. I just get the big picture that it is done by creating section in the object file. By section, I think it's simply done by creating a mark to denote the section. please kindly study ELF documentation for further info > Thing is, i'm getting the idea what these macros mean, but not > understanding the mechanisms behind them. the whole chain is complex actually, but try to get the simple view first. it's a grouping, read mostly data into a section/group in a file (in this case, kernel image), kernel loaded.....kernel arrange itself..put appropriate section into related addresses....done -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies