aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorRichard Kennedy <richard@rsk.demon.co.uk>2011-05-19 18:55:25 -0400
committerRusty Russell <rusty@rustcorp.com.au>2011-05-19 03:25:25 -0400
commita288bd651f4180c224cfddf837a0416157a36661 (patch)
tree7f966b8a0e31b8b6f2e64198c0429da57949df4a /include/linux
parent9b73a5840c7d5f77e5766626716df13787cb258c (diff)
module: remove 64 bit alignment padding from struct module with CONFIG_TRACE*
Reorder struct module to remove 24 bytes of alignment padding on 64 bit builds when the CONFIG_TRACE options are selected. This allows the structure to fit into one fewer cache lines, and its size drops from 592 to 568 on x86_64. Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/module.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/include/linux/module.h b/include/linux/module.h
index 23996ad147e7..65cc6cc73ca8 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -368,34 +368,35 @@ struct module
368 struct module_notes_attrs *notes_attrs; 368 struct module_notes_attrs *notes_attrs;
369#endif 369#endif
370 370
371 /* The command line arguments (may be mangled). People like
372 keeping pointers to this stuff */
373 char *args;
374
371#ifdef CONFIG_SMP 375#ifdef CONFIG_SMP
372 /* Per-cpu data. */ 376 /* Per-cpu data. */
373 void __percpu *percpu; 377 void __percpu *percpu;
374 unsigned int percpu_size; 378 unsigned int percpu_size;
375#endif 379#endif
376 380
377 /* The command line arguments (may be mangled). People like
378 keeping pointers to this stuff */
379 char *args;
380#ifdef CONFIG_TRACEPOINTS 381#ifdef CONFIG_TRACEPOINTS
381 struct tracepoint * const *tracepoints_ptrs;
382 unsigned int num_tracepoints; 382 unsigned int num_tracepoints;
383 struct tracepoint * const *tracepoints_ptrs;
383#endif 384#endif
384#ifdef HAVE_JUMP_LABEL 385#ifdef HAVE_JUMP_LABEL
385 struct jump_entry *jump_entries; 386 struct jump_entry *jump_entries;
386 unsigned int num_jump_entries; 387 unsigned int num_jump_entries;
387#endif 388#endif
388#ifdef CONFIG_TRACING 389#ifdef CONFIG_TRACING
389 const char **trace_bprintk_fmt_start;
390 unsigned int num_trace_bprintk_fmt; 390 unsigned int num_trace_bprintk_fmt;
391 const char **trace_bprintk_fmt_start;
391#endif 392#endif
392#ifdef CONFIG_EVENT_TRACING 393#ifdef CONFIG_EVENT_TRACING
393 struct ftrace_event_call **trace_events; 394 struct ftrace_event_call **trace_events;
394 unsigned int num_trace_events; 395 unsigned int num_trace_events;
395#endif 396#endif
396#ifdef CONFIG_FTRACE_MCOUNT_RECORD 397#ifdef CONFIG_FTRACE_MCOUNT_RECORD
397 unsigned long *ftrace_callsites;
398 unsigned int num_ftrace_callsites; 398 unsigned int num_ftrace_callsites;
399 unsigned long *ftrace_callsites;
399#endif 400#endif
400 401
401#ifdef CONFIG_MODULE_UNLOAD 402#ifdef CONFIG_MODULE_UNLOAD