[PATCH] 2.3.40: <linux/linkage.h> generates incorrect cache alignments
almesber en lrc.di.epfl.ch
almesber en lrc.di.epfl.ch
Vie Ene 28 00:06:11 CST 2000
Chris Sears wrote:
> I'm not exactly sure why "bad magic ..." desperately needs to be aligned.
gcc probably saw the "bad magic" and acted accordingly ;-)
Looking at your ioport.s, I kind of wondered how much space we're wasting
in the kernel for constant strings of this type ...
$ strings vmlinux | sort | uniq -c | sort -rn
342 wq bug, forcing oops.
342 kernel BUG at %s:%d!
342 eip: %p
342 bad magic %lx (should be %lx, creator %lx),
342 bad magic %lx (should be %lx),
342 /var/tmp/wa/2340/work/include/asm/spinlock.h
341 /var/tmp/wa/2340/work/include/asm/semaphore.h
336 /var/tmp/wa/2340/work/include/linux/sched.h
323 /var/tmp/wa/2340/work/include/linux/mm.h
(342-1)*(22+21+8+44+32+45) = 58652
(341-1)*46+(336-1)*44+(323-1)*41 = 43582
$ size vmlinux
text data bss dec hex filename
2065812 322818 521856 2910486 2c6916 vmlinux
$ bc -l
(58652+43582)/(2065812+322818+521856)
03512609234334059672
3.5%, not bad. And there are a few more that "only" occur 100 times or
so, plus an army of strings that occur twice. Using the following a
bit too primitive filter, I get
.. | awk '{ c = $1; $1 = ""; l = length($0)-1; if (l > 8) s += (c-1)*l; } \
END { print s; }'
128973
$ bc -l
128973/(2065812+322818+521856)
04431321779249238786
So 3-5% may be a realistic goal, depending on how long the paths are,
how aggressive we are, and whether we can also catch the zillions of "%d",
"\n", "." or such that must be out there.
I guess this should give the "let's throw five man-years at sequeezing
0.03871% worth of extra performance out of the kernel" folks some
incentive ;-))
- Werner
--
_________________________________________________________________________
/ Werner Almesberger, ICA, EPFL, CH werner.almesberger en ica.epfl.ch /
/_IN_N_032__Tel_+41_21_693_6621__Fax_+41_21_693_6610_____________________/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo en vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Más información sobre la lista de distribución Ayuda