This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug translator/5673] tweak kprobe config arrays


------- 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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]