Skip to content

Commit

Permalink
module: reorder struct module to save space on 64 bit builds
Browse files Browse the repository at this point in the history
reorder struct module to save space on 64 bit builds.
saves 1 cacheline_size  (128 on default x86_64 & 64 on AMD
Opteron/athlon) when CONFIG_MODULE_UNLOAD=y.

Signed-off-by: Richard Kennedy <[email protected]>
Signed-off-by: Rusty Russell <[email protected]>
  • Loading branch information
Richard Kennedy authored and rustyrussell committed Jul 22, 2008
1 parent dafd094 commit af54068
Showing 1 changed file with 22 additions and 20 deletions.
42 changes: 22 additions & 20 deletions include/linux/module.h
Original file line number Diff line number Diff line change
Expand Up @@ -249,27 +249,28 @@ struct module

/* Exported symbols */
const struct kernel_symbol *syms;
unsigned int num_syms;
const unsigned long *crcs;
unsigned int num_syms;

/* GPL-only exported symbols. */
const struct kernel_symbol *gpl_syms;
unsigned int num_gpl_syms;
const struct kernel_symbol *gpl_syms;
const unsigned long *gpl_crcs;

/* unused exported symbols. */
const struct kernel_symbol *unused_syms;
unsigned int num_unused_syms;
const unsigned long *unused_crcs;
unsigned int num_unused_syms;

/* GPL-only, unused exported symbols. */
const struct kernel_symbol *unused_gpl_syms;
unsigned int num_unused_gpl_syms;
const struct kernel_symbol *unused_gpl_syms;
const unsigned long *unused_gpl_crcs;

/* symbols that will be GPL-only in the near future. */
const struct kernel_symbol *gpl_future_syms;
unsigned int num_gpl_future_syms;
const unsigned long *gpl_future_crcs;
unsigned int num_gpl_future_syms;

/* Exception table */
unsigned int num_exentries;
Expand Down Expand Up @@ -300,23 +301,9 @@ struct module

#ifdef CONFIG_GENERIC_BUG
/* Support for BUG */
unsigned num_bugs;
struct list_head bug_list;
struct bug_entry *bug_table;
unsigned num_bugs;
#endif

#ifdef CONFIG_MODULE_UNLOAD
/* Reference counts */
struct module_ref ref[NR_CPUS];

/* What modules depend on me? */
struct list_head modules_which_use_me;

/* Who is waiting for us to be unloaded */
struct task_struct *waiter;

/* Destruction function. */
void (*exit)(void);
#endif

#ifdef CONFIG_KALLSYMS
Expand All @@ -342,6 +329,21 @@ struct module
struct marker *markers;
unsigned int num_markers;
#endif

#ifdef CONFIG_MODULE_UNLOAD
/* What modules depend on me? */
struct list_head modules_which_use_me;

/* Who is waiting for us to be unloaded */
struct task_struct *waiter;

/* Destruction function. */
void (*exit)(void);

/* Reference counts */
struct module_ref ref[NR_CPUS];
#endif

};
#ifndef MODULE_ARCH_INIT
#define MODULE_ARCH_INIT {}
Expand Down

0 comments on commit af54068

Please sign in to comment.