Re: [patch 1/4] Linux Kernel Markers - Architecture Independent Code

Denys Vlasenko
2007-09-19T17:33:00Z

On Wednesday 19 September 2007 12:37, Mathieu Desnoyers wrote:
> > Index: linux-2.6-lttng/include/asm-generic/vmlinux.lds.h
> > ===================================================================
> > --- linux-2.6-lttng.orig/include/asm-generic/vmlinux.lds.h 2007-09-14 10:11:18.000000000 -0400
> > +++ linux-2.6-lttng/include/asm-generic/vmlinux.lds.h 2007-09-14 10:11:31.000000000 -0400
> > @@ -129,6 +133,11 @@
> > VMLINUX_SYMBOL(__stop___immediate) = .; \
> > } \
> > \
> > + /* Markers: strings */ \
> > + __markers_strings : AT(ADDR(__markers_strings) - LOAD_OFFSET) { \
> > + *(__markers_strings) \
> > + } \
> > + \
> > /* Kernel symbol table: strings */ \
> > __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
> > *(__ksymtab_strings) \
> [...]
>
> Do you think I should also remove the __markers_strings section from here ?

Yes.

It will be beneficial if one can read include/asm-generic/vmlinux.lds.h and
arch/$ARCH/kernel/vmlinux.lds.S and understand which sections in resulting
vmlinux serve what purpose. A comment atop each section explaining
its role will be nice. Even more so that not many people are fluent
in ld script language.

Currently, one will need to grep around (and not only in kernel tree -
you need to read depmod.c source too) in order to understand the role
of various sections in vmlinux.

There are dearth of comments in ld scripts, and some sections
are created "just because I felt like it". For example, there are
".data.page_aligned" and ".data.percpu" sections - can you
easily tell which one has to be a section, and which does not need
to be one (can be merged with ".data")? Maybe both must be sections?
Or none of them?
--
vda