tipc: add __read_mostly annotations to several global variables

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>
This commit is contained in:
Ying Xue 2012-08-16 12:09:12 +00:00 committed by David S. Miller
parent f046e7d9be
commit 61cdd4d80b
3 changed files with 11 additions and 11 deletions

View File

@ -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;
/**

View File

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

View File

@ -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);