Up until now, iser used bounce buffering to mitigate the
RDMA alignment limitations. Since kernel 4.3, the block layer
can reliably guarantee that SG lists won't contain gaps
(page alignment is not met) if a driver set a virt_boundary.

The block layer will:
- refuse merges if bios are not aligned to the virtual boundary
- split bios/requests that are not aligned to the virtual boundary
- or, bounce buffer SG_IOs that are not aligned to the virtual boundary 

Thus, we can drop the bounce buffering logic in the iser driver.

Also, the second patch enables SG clustering as iser fully supports it.

This should be applied before the New memory registration
API patch set.

Changes from v1:
- Change logs

Changes from v0:
- Added Reviewed-by tags
- Fixed patch (1) title

Sagi Grimberg (2):
  iser: set block queue_virt_boundary
  IB/iser: Enable SG clustering

 drivers/infiniband/ulp/iser/iscsi_iser.c     |  14 +-
 drivers/infiniband/ulp/iser/iscsi_iser.h     |   7 +-
 drivers/infiniband/ulp/iser/iser_initiator.c |  51 +----
 drivers/infiniband/ulp/iser/iser_memory.c    | 274 ---------------------------
 4 files changed, 19 insertions(+), 327 deletions(-)

-- 
1.8.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to