lkml.org 
[lkml]   [2007]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] markers-linker-generic
    Defines the linker marcro EXTRA_RWDATA for marker data section. It
    puts the marker data in a separate section that will not pollute the
    normal .data section, which minimize the cache impact. Markers need such
    a special section because they define a lot of spreaded and small data
    structures at multiple sites.

    This patch also creates the __markers_strings section (ro marker
    strings) and makes sure the __markers section is aligned by putting it
    before the __ksymtab_strings (not after).

    It applies on 2.6.21-rc6-mm1.

    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

    --- a/include/asm-generic/vmlinux.lds.h
    +++ b/include/asm-generic/vmlinux.lds.h
    @@ -116,21 +116,19 @@
    *(__kcrctab_gpl_future) \
    VMLINUX_SYMBOL(__stop___kcrctab_gpl_future) = .; \
    } \
    - \
    - /* Kernel symbol table: strings */ \
    - __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
    - *(__ksymtab_strings) \
    - } \
    /* Kernel markers : pointers */ \
    - .markers : AT(ADDR(.markers) - LOAD_OFFSET) { \
    + __markers : AT(ADDR(__markers) - LOAD_OFFSET) { \
    VMLINUX_SYMBOL(__start___markers) = .; \
    - *(.markers) \
    + *(__markers) \
    VMLINUX_SYMBOL(__stop___markers) = .; \
    } \
    - .markers.c : AT(ADDR(.markers.c) - LOAD_OFFSET) { \
    - VMLINUX_SYMBOL(__start___markers_c) = .; \
    - *(.markers.c) \
    - VMLINUX_SYMBOL(__stop___markers_c) = .; \
    + /* Kernel symbol table: strings */ \
    + __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
    + *(__ksymtab_strings) \
    + } \
    + /* Kernel markers : strings */ \
    + __markers_strings : AT(ADDR(__markers_strings) - LOAD_OFFSET) { \
    + *(__markers_strings) \
    } \
    __end_rodata = .; \
    . = ALIGN(4096); \
    @@ -147,6 +145,10 @@
    \
    . = ALIGN(4096);

    +#define EXTRA_RWDATA \
    + . = ALIGN(8); \
    + *(__markers_data) \
    +
    #define SECURITY_INIT \
    .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \
    VMLINUX_SYMBOL(__security_initcall_start) = .; \
    @@ -263,4 +265,3 @@
    *(.initcall6s.init) \
    *(.initcall7.init) \
    *(.initcall7s.init)
    -
    --
    Mathieu Desnoyers
    Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
    OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-11 00:39    [from the cache]
    ©2003-2014 Jasper Spaans. Advertise on this site