aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_fcoe.h
diff options
context:
space:
mode:
authorVasu Dev <vasu.dev@intel.com>2011-05-11 01:41:46 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-06-21 04:22:44 -0400
commitdadbe85ac47f180fa1e3ef93b276ab7938b1a98b (patch)
treee2e6924ffa0c510e6ee246184593b82783c8c75a /drivers/net/ixgbe/ixgbe_fcoe.h
parent9612de92e023bff0d1cd5725ee65293accc70c56 (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.h13
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
67struct ixgbe_fcoe { 68struct 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 */