Skip to content

Commit

Permalink
[SCSI] libfc: cache align fc_exch_pool
Browse files Browse the repository at this point in the history
fix holes and better cache aligned fields.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
  • Loading branch information
Vasu Dev authored and James Bottomley committed Oct 2, 2011
1 parent 49a1988 commit e17b4af
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions drivers/scsi/libfc/fc_exch.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,15 @@ static struct workqueue_struct *fc_exch_workqueue;
* assigned range of exchanges to per cpu pool.
*/
struct fc_exch_pool {
spinlock_t lock;
struct list_head ex_list;
u16 next_index;
u16 total_exches;

/* two cache of free slot in exch array */
u16 left;
u16 right;

spinlock_t lock;
struct list_head ex_list;
};
} ____cacheline_aligned_in_smp;

/**
* struct fc_exch_mgr - The Exchange Manager (EM).
Expand All @@ -91,13 +90,13 @@ struct fc_exch_pool {
* It manages the allocation of exchange IDs.
*/
struct fc_exch_mgr {
struct fc_exch_pool *pool;
mempool_t *ep_pool;
enum fc_class class;
struct kref kref;
u16 min_xid;
u16 max_xid;
mempool_t *ep_pool;
u16 pool_max_index;
struct fc_exch_pool *pool;

/*
* currently exchange mgr stats are updated but not used.
Expand Down

0 comments on commit e17b4af

Please sign in to comment.