An error occurred fetching the project authors.
- 27 Oct, 2004 1 commit
-
-
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:
Russell King <rmk@arm.linux.org.uk> Signed-off-by:
Sam Ravnborg <sam@ravnborg.org> ===== kernel/module.c 1.120 vs edited =====
-
- 19 Oct, 2004 1 commit
-
-
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:
Paulo Marques <pmarques@grupopie.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 11 Jul, 2004 1 commit
-
-
Keith Owens authored
PPC small data area base symbols shift between kallsyms phases 1 and 2, which makes the kallsyms data unstable. Exclude them from the kallsyms list. Signed-off-by:
Keith Owens <kaos@sgi.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 27 Jun, 2004 1 commit
-
-
Keith Owens authored
Exclude symbols added by kallsyms itself, so .tmp_kallsyms[12].S have the same list of symbols. Signed-off-by:
Keith Owens <kaos@sgi.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 21 May, 2004 1 commit
-
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> kallsyms contains only function names, but some debuggers (eg. xmon on PPC/PPC64) use it to lookup symbols: it'd be much nicer if it included data symbols too.
-
- 15 May, 2004 1 commit
-
-
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
-
- 12 Apr, 2003 1 commit
-
-
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)
-
- 16 Jan, 2003 1 commit
-
-
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.
-
- 02 Jan, 2003 1 commit
-
-
Daniel Ritz authored
The attached patch fixes the crash top or cat /proc/*/wchan produces when using KALLSYMS it's a buffer overrun that should not happen. Based on patch by andi kleen.
-
- 30 Dec, 2002 1 commit
-
-
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.
-
- 25 Dec, 2002 2 commits
-
-
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.
-
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.
-
- 05 Dec, 2002 1 commit
-
-
Kai Germaschewski authored
Argh, missed one line in the generated assembly, which is kinda important.
-
- 04 Dec, 2002 1 commit
-
-
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 ;)
-