linux_old1/drivers/net/mlx4
David Dillow 7f9e5c48c1 IB: Increase DMA max_segment_size on Mellanox hardware
By default, each device is assumed to be able only handle 64 KB chunks
during DMA. By giving the segment size a larger value, the block layer
will coalesce more S/G entries together for SRP, allowing larger
requests with the same sg_tablesize setting.  The block layer is the
only direct user of it, though a few IOMMU drivers reference it as
well for their *_map_sg coalescing code. pci-gart_64 on x86, and a
smattering on on sparc, powerpc, and ia64.

Since other IB protocols could potentially see larger segments with
this, let's check those:

 - iSER is fine, because you limit your maximum request size to 512
   KB, so we'll never overrun the page vector in struct iser_page_vec
   (128 entries currently). It is independent of the DMA segment size,
   and handles multi-page segments already.

 - IPoIB is fine, as it maps each page individually, and doesn't use
   ib_dma_map_sg().

 - RDS appears to do the right thing and has no dependencies on DMA
   segment size, but I don't claim to have done a complete audit.

 - NFSoRDMA and 9p are OK -- they do not use ib_dma_map_sg(), so they
   doesn't care about the coalescing.

 - Lustre's ko2iblnd does not care about coalescing -- it properly
   walks the returned sg list.

This patch ups the value on Mellanox hardware to 1 GB, which matches
reported firmware limits on mlx4.

Signed-off-by: David Dillow <dillowda@ornl.gov>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2011-03-22 09:39:18 -07:00
..
Makefile mlx4_en: Added self diagnostics test implementation 2010-08-24 14:54:51 -07:00
alloc.c mlx4_core: Avoid vunmap() of invalid pointer if allocation fails 2011-01-10 17:42:06 -08:00
catas.c mlx4_{core, ib, en}: Fix driver when sizeof (phys_addr_t) > sizeof (long) 2011-01-12 09:50:36 -08:00
cmd.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cq.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
en_cq.c
en_ethtool.c mlx4_en: Fixed Ethtool statistics report 2010-09-06 18:48:44 -07:00
en_main.c mlx4_{core, ib, en}: Fix driver when sizeof (phys_addr_t) > sizeof (long) 2011-01-12 09:50:36 -08:00
en_netdev.c mlx4: Call alloc_etherdev to allocate RX and TX queues 2011-01-10 16:05:31 -08:00
en_port.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2010-10-26 17:54:22 -07:00
en_port.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2010-10-26 17:54:22 -07:00
en_resources.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
en_rx.c mlx4_en: Consider napi_get_frags() failure. 2010-09-06 18:48:44 -07:00
en_selftest.c drivers/net: return operator cleanup 2010-09-26 18:34:29 -07:00
en_tx.c vlan: Don't check for vlan group before vlan_tx_tag_present. 2010-10-21 01:26:52 -07:00
eq.c mlx4_en: Added self diagnostics test implementation 2010-08-24 14:54:51 -07:00
fw.c mlx4_core: Remove warning message about firmware bug 2011-01-10 17:42:05 -08:00
fw.h mlx4_en: UDP RSS support 2010-08-24 14:57:09 -07:00
icm.c mlx4: make functions local and remove dead code. 2010-10-24 14:55:47 -07:00
icm.h mlx4: make functions local and remove dead code. 2010-10-24 14:55:47 -07:00
intf.c mlx4_core: Allow protocol drivers to find corresponding interfaces 2010-10-25 10:20:39 -07:00
main.c IB: Increase DMA max_segment_size on Mellanox hardware 2011-03-22 09:39:18 -07:00
mcg.c IB/mlx4: Handle protocol field in multicast table 2011-01-12 14:49:17 -08:00
mlx4.h drivers/net/mlx4: Use %pV, pr_<level>, printk_once 2010-07-15 19:05:17 -07:00
mlx4_en.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2010-10-26 17:54:22 -07:00
mr.c drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
pd.c mlx4_core: Remove unnecessary includes of <linux/init.h> 2009-09-05 20:24:49 -07:00
port.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-27 18:28:00 -07:00
profile.c drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
qp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
reset.c mlx4_core: Remove unnecessary includes of <linux/init.h> 2009-09-05 20:24:49 -07:00
sense.c mlx4_core: return a negative error value 2009-12-13 19:47:42 -08:00
srq.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00