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