linux/drivers/infiniband/hw
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
..
amso1100 RDMA/amso1100: Fix compile warnings 2011-01-28 15:40:25 -08:00
cxgb3 ipv4: Create and use route lookup helpers. 2011-03-12 15:08:42 -08:00
cxgb4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-03-16 16:29:25 -07:00
ehca RDMA: Use vzalloc() to replace vmalloc()+memset(0) 2011-01-12 11:11:58 -08:00
ipath IB/ipath: Don't reset disabled devices 2011-03-14 14:25:59 -07:00
mlx4 IB/mlx4: Handle protocol field in multicast table 2011-01-12 14:49:17 -08:00
mthca IB: Increase DMA max_segment_size on Mellanox hardware 2011-03-22 09:39:18 -07:00
nes ipv4: Create and use route lookup helpers. 2011-03-12 15:08:42 -08:00
qib IB/qib: Fix M_Key field in SubnGet and SubnGetResp MADs 2011-03-14 12:11:51 -07:00