This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/5673] tweak kprobe config arrays
- From: "fche at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 26 Jan 2008 03:15:57 -0000
- Subject: [Bug translator/5673] tweak kprobe config arrays
- References: <20080125184406.5673.fche@redhat.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From fche at redhat dot com 2008-01-26 03:15 -------
Some initial findings on the 'probe kernel.function("*") {}' .ko:
Of the .ko space, 90%+ of the data is the stap_dwarf_probe[]
array. On x86-64, each entry is 200 bytes long, of which
an embedded blank "struct kprobe" is 120, and the union
"struct kretprobe" is 152. These latter structs need some
independent runtime existence but they don't have to live in
initialized data ==> dynamically allocate them during module_init.
Next, the probe point string, averages ~30 bytes per probe, is
stored in .rodata.str but is not directly compressible. Perhaps
it is worthwhile breaking up this string field so that link-time
duplicate elimination can work. Substrings like `kernel.function("'
or `@file/foo.c' could be merged. (This would mean making the
stap_dwarf_probe struct contain a small array of char*'s instead
of just one.)
Doing these two things should reduce the unnecessary bloat in the
.ko file considerably. It should no longer be 93%-compressible by
gzip.
--
What |Removed |Added
----------------------------------------------------------------------------
Summary|tewak kprobe config arrays |tweak kprobe config arrays
http://sourceware.org/bugzilla/show_bug.cgi?id=5673
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.