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
..
2011-03-05 10:55:57 +01:00
2011-02-23 14:11:31 -08:00
2011-02-28 11:57:33 -08:00
2011-02-28 11:57:33 -08:00
2011-03-16 11:29:47 -07:00
2011-02-02 15:41:25 -08:00
2011-02-13 10:42:07 -08:00
2011-03-02 03:20:56 -08:00
2011-01-11 14:03:09 -08:00
2011-03-11 01:16:23 -08:00
2010-05-10 05:01:31 -07:00
2011-03-15 00:43:15 +01:00
2011-02-28 12:06:20 -08:00
2010-12-21 02:16:10 -08:00
2010-12-21 02:16:10 -08:00
2011-02-28 11:57:33 -08:00
2011-03-15 19:38:03 -07:00
2010-12-21 02:16:08 -08:00
2010-12-21 02:16:08 -08:00
2010-05-10 05:01:31 -07:00
2010-12-21 02:16:08 -08:00
2010-11-09 09:17:56 -08:00
2010-12-21 02:16:08 -08:00
2010-06-03 03:18:23 -07:00
2010-11-17 12:21:14 -08:00
2010-11-09 09:17:56 -08:00
2010-07-11 18:15:08 -07:00
2011-03-10 14:41:51 -08:00
2010-12-21 02:16:08 -08:00
2010-11-09 09:17:56 -08:00
2010-12-01 11:11:31 -08:00
2010-08-24 12:24:07 -07:00
2010-09-26 18:34:29 -07:00
2011-03-14 15:00:12 -07:00
2011-03-14 15:00:12 -07:00
2011-01-14 12:39:59 -08:00
2010-12-23 11:44:34 -08:00
2010-07-14 13:40:36 -07:00
2010-05-10 05:01:31 -07:00
2010-09-26 18:34:29 -07:00
2010-09-26 18:34:29 -07:00
2011-02-01 13:19:07 -08:00
2011-01-27 14:18:34 -08:00
2009-11-11 19:22:21 -08:00
2010-09-29 13:23:30 -07:00
2010-09-26 18:34:29 -07:00
2010-12-21 02:16:08 -08:00
2010-12-21 02:16:08 -08:00
2010-09-26 18:34:29 -07:00
2011-01-09 15:42:56 -08:00
2011-01-13 21:44:34 -08:00
2011-01-14 12:45:54 -08:00
2010-09-26 18:34:29 -07:00
2010-12-21 02:16:08 -08:00
2011-01-03 12:43:10 -08:00
2011-02-28 11:57:33 -08:00
2011-02-28 11:57:33 -08:00
2011-02-13 21:44:44 -08:00
2010-07-27 22:24:37 -07:00
2010-11-08 13:50:06 -08:00
2010-11-09 09:17:56 -08:00
2010-11-09 09:17:56 -08:00
2011-02-17 14:16:35 -08:00
2010-09-26 18:34:29 -07:00
2010-05-10 05:01:31 -07:00
2011-03-15 19:38:03 -07:00
2010-09-26 18:34:29 -07:00
2011-03-03 13:02:32 -08:00
2010-06-21 13:40:25 -07:00
2010-07-05 20:08:05 -07:00
2010-05-10 05:01:31 -07:00
2010-12-21 02:16:08 -08:00
2010-12-21 02:16:08 -08:00
2010-06-28 12:41:33 -07:00
2010-09-26 18:34:29 -07:00
2010-09-15 22:06:05 -07:00
2010-09-21 18:04:47 -07:00
2010-07-15 20:46:22 -07:00
2011-03-07 15:49:31 -08:00
2010-12-11 11:46:36 -08:00
2010-05-10 05:01:31 -07:00
2011-02-28 12:29:34 -08:00
2011-02-24 22:17:02 -08:00
2011-01-09 15:54:15 -08:00
2010-10-24 16:25:39 -07:00
2010-09-26 18:34:29 -07:00
2011-01-25 22:41:55 -08:00
2010-05-10 05:01:31 -07:00
2010-12-21 02:16:08 -08:00
2010-05-10 05:01:31 -07:00
2010-09-26 18:34:29 -07:00
2011-03-10 01:56:14 -08:00
2011-01-26 13:13:10 -08:00
2010-06-03 03:18:23 -07:00
2010-12-08 10:23:36 -08:00
2010-12-21 02:16:08 -08:00
2011-03-15 19:38:03 -07:00
2010-11-09 09:17:56 -08:00