From 81fb86d83da9964e7d9e2330d78b2008f18054e4 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 19 Oct 2009 18:11:58 -0700 Subject: Improve some runtime struct layouts Guided by pahole, I've shaved off a few padding bytes here and there. New sizes on x86_64: stap_task_finder_target 192 -> 184 stap_itrace_probe 216 -> 208 stap_utrace_probe 328 -> 312 stap_uprobe_tf 200 -> 192 stap_uprobe_spec 48 -> 40 I only changed field layouts, not types or names, so this should be perfectly safe. (FLW) --- runtime/task_finder.c | 4 ++-- tapset-utrace.cxx | 2 +- tapsets.cxx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/runtime/task_finder.c b/runtime/task_finder.c index 6b50f1b9..e89ac8ee 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -87,15 +87,15 @@ struct stap_task_finder_target { struct list_head callback_list_head; struct list_head callback_list; struct utrace_engine_ops ops; + size_t pathlen; unsigned engine_attached:1; unsigned mmap_events:1; unsigned munmap_events:1; unsigned mprotect_events:1; - size_t pathlen; /* public: */ - const char *procname; pid_t pid; + const char *procname; stap_task_finder_callback callback; stap_task_finder_mmap_callback mmap_callback; stap_task_finder_munmap_callback munmap_callback; diff --git a/tapset-utrace.cxx b/tapset-utrace.cxx index abc9759f..4bd4ecc1 100644 --- a/tapset-utrace.cxx +++ b/tapset-utrace.cxx @@ -785,10 +785,10 @@ utrace_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline() << "struct stap_task_finder_target tgt;"; s.op->newline() << "const char *pp;"; s.op->newline() << "void (*ph) (struct context*);"; + s.op->newline() << "int engine_attached;"; s.op->newline() << "enum utrace_derived_probe_flags flags;"; s.op->newline() << "struct utrace_engine_ops ops;"; s.op->newline() << "unsigned long events;"; - s.op->newline() << "int engine_attached;"; s.op->newline() << "struct task_struct *tsk;"; s.op->newline() << "unsigned long sdt_sem_address;"; s.op->newline(-1) << "};"; diff --git a/tapsets.cxx b/tapsets.cxx index 59dbc4b3..17e6c6cf 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -4433,11 +4433,11 @@ uprobe_derived_probe_group::emit_module_decls (systemtap_session& s) s.op->newline() << "static const struct stap_uprobe_spec {"; // NB: read-only structure s.op->newline(1) << "unsigned tfi;"; // index into stap_uprobe_finders[] + s.op->newline() << "unsigned return_p:1;"; s.op->newline() << "unsigned long address;"; s.op->newline() << "const char *pp;"; s.op->newline() << "void (*ph) (struct context*);"; s.op->newline() << "unsigned long sdt_sem_address;"; - s.op->newline() << "unsigned return_p:1;"; s.op->newline(-1) << "} stap_uprobe_specs [] = {"; // NB: read-only structure s.op->indent(1); for (unsigned i =0; i