diff options
author | Vasu Dev <vasu.dev@intel.com> | 2011-05-11 01:41:46 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-06-21 04:22:44 -0400 |
commit | dadbe85ac47f180fa1e3ef93b276ab7938b1a98b (patch) | |
tree | e2e6924ffa0c510e6ee246184593b82783c8c75a /drivers/net/ixgbe/ixgbe_fcoe.h | |
parent | 9612de92e023bff0d1cd5725ee65293accc70c56 (diff) |
ixgbe: setup per CPU PCI pool for FCoE DDP
Currently single PCI pool used across all CPUs and that
doesn't scales up as number of CPU increases, so this
patch adds per CPU PCI pool to setup udl and that aligns
well from FCoE stack as that already has per CPU exch locking.
Adds per CPU PCI alloc setup and free in
ixgbe_fcoe_ddp_pools_alloc and ixgbe_fcoe_ddp_pools_free,
use CPU specific pool during DDP setup.
Re-arranged ixgbe_fcoe struct to have fewer holes
along with adding pools ptr using pahole.
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_fcoe.h')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_fcoe.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.h b/drivers/net/ixgbe/ixgbe_fcoe.h index 5a650a4ace66..d876e7ac2257 100644 --- a/drivers/net/ixgbe/ixgbe_fcoe.h +++ b/drivers/net/ixgbe/ixgbe_fcoe.h | |||
@@ -62,20 +62,21 @@ struct ixgbe_fcoe_ddp { | |||
62 | struct scatterlist *sgl; | 62 | struct scatterlist *sgl; |
63 | dma_addr_t udp; | 63 | dma_addr_t udp; |
64 | u64 *udl; | 64 | u64 *udl; |
65 | struct pci_pool *pool; | ||
65 | }; | 66 | }; |
66 | 67 | ||
67 | struct ixgbe_fcoe { | 68 | struct ixgbe_fcoe { |
68 | #ifdef CONFIG_IXGBE_DCB | 69 | struct pci_pool **pool; |
69 | u8 tc; | ||
70 | u8 up; | ||
71 | #endif | ||
72 | unsigned long mode; | ||
73 | atomic_t refcnt; | 70 | atomic_t refcnt; |
74 | spinlock_t lock; | 71 | spinlock_t lock; |
75 | struct pci_pool *pool; | ||
76 | struct ixgbe_fcoe_ddp ddp[IXGBE_FCOE_DDP_MAX]; | 72 | struct ixgbe_fcoe_ddp ddp[IXGBE_FCOE_DDP_MAX]; |
77 | unsigned char *extra_ddp_buffer; | 73 | unsigned char *extra_ddp_buffer; |
78 | dma_addr_t extra_ddp_buffer_dma; | 74 | dma_addr_t extra_ddp_buffer_dma; |
75 | unsigned long mode; | ||
76 | #ifdef CONFIG_IXGBE_DCB | ||
77 | u8 tc; | ||
78 | u8 up; | ||
79 | #endif | ||
79 | }; | 80 | }; |
80 | 81 | ||
81 | #endif /* _IXGBE_FCOE_H */ | 82 | #endif /* _IXGBE_FCOE_H */ |