Skip to content

Commit

Permalink
tipc: add __read_mostly annotations to several global variables
Browse files Browse the repository at this point in the history
Added to the following:

 - tipc_random
 - tipc_own_addr
 - tipc_max_ports
 - tipc_net_id
 - tipc_remote_management
 - handler_enabled

The above global variables are read often, but written rarely. Use
__read_mostly to prevent them being on the same cacheline as another
variable which is written to often, which would cause cacheline
bouncing.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ying Xue authored and David S. Miller committed Aug 20, 2012
1 parent f046e7d commit 61cdd4d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
10 changes: 5 additions & 5 deletions net/tipc/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@


/* global variables used by multiple sub-systems within TIPC */
int tipc_random;
int tipc_random __read_mostly;

/* configurable TIPC parameters */
u32 tipc_own_addr;
int tipc_max_ports;
u32 tipc_own_addr __read_mostly;
int tipc_max_ports __read_mostly;
int tipc_max_subscriptions;
int tipc_max_publications;
int tipc_net_id;
int tipc_remote_management;
int tipc_net_id __read_mostly;
int tipc_remote_management __read_mostly;


/**
Expand Down
10 changes: 5 additions & 5 deletions net/tipc/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,17 +74,17 @@ int tipc_snprintf(char *buf, int len, const char *fmt, ...);
/*
* Global configuration variables
*/
extern u32 tipc_own_addr;
extern int tipc_max_ports;
extern u32 tipc_own_addr __read_mostly;
extern int tipc_max_ports __read_mostly;
extern int tipc_max_subscriptions;
extern int tipc_max_publications;
extern int tipc_net_id;
extern int tipc_remote_management;
extern int tipc_net_id __read_mostly;
extern int tipc_remote_management __read_mostly;

/*
* Other global variables
*/
extern int tipc_random;
extern int tipc_random __read_mostly;

/*
* Routines available to privileged subsystems
Expand Down
2 changes: 1 addition & 1 deletion net/tipc/handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ struct queue_item {
static struct kmem_cache *tipc_queue_item_cache;
static struct list_head signal_queue_head;
static DEFINE_SPINLOCK(qitem_lock);
static int handler_enabled;
static int handler_enabled __read_mostly;

static void process_signal_queue(unsigned long dummy);

Expand Down

0 comments on commit 61cdd4d

Please sign in to comment.