An error occurred fetching the project authors.
  1. 27 Oct, 2004 1 commit
    • Russell King's avatar
      arm: Fix ARM kernel build with permitted binutils versions · ce57f2a0
      Russell King authored
      All ARM binutils versions post 2.11.90 contains an extra "feature" which
      interferes with the kernel in various ways - extra "mapping symbols"
      in the ELF symbol table '$a', '$t' and '$d'.  This causes two problems:
      
      1. Since '$a' symbols have the same value as function names, this
         causes anything which uses the kallsyms infrastructure to report
         wrong values.
      2. programs which parse System.map do not expect symbols to start with
         '$'.
      Signed-off-by: default avatarRussell King <rmk@arm.linux.org.uk>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      
      ===== kernel/module.c 1.120 vs edited =====
      ce57f2a0
  2. 19 Oct, 2004 1 commit
    • Paulo Marques's avatar
      [PATCH] kallsyms data size reduction / lookup speedup · e1039211
      Paulo Marques authored
      This patch is an improvement over my first kallsyms speedup patch posted about
      2 weeks ago.
      
      It changes scripts/kallsyms as to produce a different format for
      kallsyms_names and extra data to speedup lookups.  The compression algorithm
      is quite simple: it uses all the char codes not actually used in symbols to
      build a lookup table that translates these codes into small strings.  For
      instance, in my test runs the code 0xFE was being translated into "acpi_"
      giving a 4 byte save on every translation.
      
      The advantage of this algorithm is that to translate a symbol we only require
      information that is stored on that symbol position, and never need to go back
      on the compressed stream to get information from other symbols.
      
      To give an idea about the benefits of this algorithm here are some benchmark
      results on a P4 2.8GHz with a symbol table with 10000 entries:
      
      kallsyms_lookup average time:
        vanilla           1346.0 us
        speedup             14.4 us
        with this patch      0.5 us
      
      total data produced by scripts/kallsyms:
        uncompressed         169 Kb
        vanilla              134 Kb
        with this patch       91 Kb
      
      (speedup was my latest patch, that only changed the way kallsyms_lookup worked
      and not the data format)
      
      I removed a cond_resched() from the proc/kallsyms handling code path, because
      using stem compression, if the current position went backwards, the hole
      stream would be uncompressed up to the current position.  It seemed that by
      removing this loop it would be safe to remove the conditional reschedule
      altogether.
      
      There is just one catch with this patch: the time it takes to compile the
      kernel goes up just a bit (about 0.8s on a P4 2.8GHz with defconfig).  If this
      delay is not acceptable I can change the compression algorithm so that it can
      use the previous table (calculating a new table is what consumes most of the
      time, and not doing the actual compression) and check to see if it obtains a
      similar compression ratio.  If it does, then this is a sign that the symbol
      patterns haven't changed that much and this table is still good to use.  This
      would not only cut the time down to half on any compilation (because of the 2
      pass symbol build method), but in frequent cases where a developer is
      compiling a single file and linking everything over and over again, the table
      optimization process would never run.
      
      I'm CC'ing Brent Casavant on this email, because last june he sent a patch
      trying a different approach that used a 32 entry symbol cache, because there
      was a problem with the time "top" took to read "proc/<pid>/wchan".  I was
      hopping he would be willing to test this patch and comment on the results.
      Signed-off-by: default avatarPaulo Marques <pmarques@grupopie.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e1039211
  3. 11 Jul, 2004 1 commit
  4. 27 Jun, 2004 1 commit
  5. 21 May, 2004 1 commit
  6. 15 May, 2004 1 commit
    • Andrew Morton's avatar
      [PATCH] Include Aliases in kallsyms · 53d20202
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Kallsyms discards symbols with the same address, but these are sometimes
      useful.  Skip this minor optimization and make kallsyms_lookup deal with
      aliases
      53d20202
  7. 12 Apr, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] Put all functions in kallsyms · 4b4bd81a
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Introduce _sinittext and _einittext (cf. _stext and _etext), so kallsyms
      includes __init functions.
      
      TODO: Use huffman name compression and 16-bit offsets (see IDE
      oopser patch)
      4b4bd81a
  8. 16 Jan, 2003 1 commit
    • Kai Germaschewski's avatar
      kbuild: fix broken kallsyms on non-x86 archs · 11aa9341
      Kai Germaschewski authored
      From: James Bottomley <James.Bottomley@steeleye.com>
        
      kallsyms is broken in parisc on 2.5.56 again because of assembler syntax
      subtleties.  This is the offending line:
        
      printf("\t.byte 0x%02x ; .asciz\t\"%s\"\n"
        
      Note the `;' separating the two statements.  On some platforms `;' is a
      comment in assembly code, and thus the following .asciz is ignored.
      11aa9341
  9. 02 Jan, 2003 1 commit
  10. 30 Dec, 2002 1 commit
    • Kai Germaschewski's avatar
      kbuild: Fix kallsyms on 64 bit archs · be74f368
      Kai Germaschewski authored
      The generated .tmp_kallsyms.S needs to use .long / .quad for
      32/64 bit archs. To know which arch we're compiling for, we
      use the preprocessor and BITS_PER_LONG from <asm/types.h>.
      
      Unfortunately, asm/types.h was not safe to include from assembler
      files, so lots of #ifndef __ASSEMBLY__ needed to be added - should
      be fine now, untested for != i386, though.
      be74f368
  11. 25 Dec, 2002 2 commits
    • Andi Kleen's avatar
      kbuild: Stem compression for kallsyms · fccef669
      Andi Kleen authored
      This patch implements simple stem compression for the kallsyms symbol
      table. Each symbol has as first byte a count on how many characters
      are identical to the previous symbol. This compresses the often
      common repetive prefixes (like subsys_) fairly effectively.
      
      On a fairly full featured monolithic i386 kernel this saves about 60k in
      the kallsyms symbol table.
      
      The changes are very simple, so the 60k are not shabby.
      
      One visible change is that the caller of kallsyms_lookup has to pass in
      a buffer now, because it has to be modified. I added an arbitary
      127 character limit to it.
      
      Still >210k left in the symbol table unfortunately. Another idea would be to
      delta encode the addresses in 16bits (functions are all likely to be smaller
      than 64K).  This would especially help on 64bit hosts. Not done yet, however.
      
      No, before someone asks, I don't want to use zlib for that. Far too fragile
      during an oops and overkill too and it would require to link it into all
      kernels.
      fccef669
    • James Bottomley's avatar
      kbuild: fix bug in scripts/kallsyms.c · a7044197
      James Bottomley authored
      kallsyms.c generates the symbol table in a .S file using the assembler .string
      macro.  Unfortunately, the .string macro is implemented in a platform specific
      way (it may or may not zero terminate the string).  On parisc, it doesn't zero
      terminate, so the symbol table search doesn't work.
      
      The solution is to replace .string with .asciz which is guaranteed to do the
      correct thing on all platforms.
      a7044197
  12. 05 Dec, 2002 1 commit
  13. 04 Dec, 2002 1 commit
    • Kai Germaschewski's avatar
      kbuild: Speed up kallsyms generation · 6802d702
      Kai Germaschewski authored
      This patch basically just replaces the scripts/kallsyms script by
      a scripts/kallsyms.c C program, which does the same thing much faster.
      
      It also removes duplicates and entries which are not between _stext and
      _etext, as they would not get used anyway. This saves about 290KB in
      vmlinux with my .config, more than 50% of the kallsyms bloat ;)
      6802d702