diff mbox

[V4,3/5] RDMA/iser: Limit sg tablesize and max_sectors to device fastreg max depth

Message ID 20150702151619.12946.79500.stgit@build.ogc.int (mailing list archive)
State Superseded
Headers show

Commit Message

Steve Wise July 2, 2015, 3:16 p.m. UTC
Currently the sg tablesize, which dictates fast register page list
depth to use, does not take into account the limits of the rdma device.
So adjust it once we discover the device fastreg max depth limit.  Also
adjust the max_sectors based on the resulting sg tablesize.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
---
 drivers/infiniband/ulp/iser/iscsi_iser.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)


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

Comments

Sagi Grimberg July 5, 2015, 9:57 a.m. UTC | #1
On 7/2/2015 6:16 PM, Steve Wise wrote:
> Currently the sg tablesize, which dictates fast register page list
> depth to use, does not take into account the limits of the rdma device.
> So adjust it once we discover the device fastreg max depth limit.  Also
> adjust the max_sectors based on the resulting sg tablesize.
>
> Signed-off-by: Steve Wise <swise@opengridcomputing.com>
> Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
> ---
>   drivers/infiniband/ulp/iser/iscsi_iser.c |    9 +++++++++
>   1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
> index 6a594aa..0ed8638 100644
> --- a/drivers/infiniband/ulp/iser/iscsi_iser.c
> +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
> @@ -640,6 +640,15 @@ iscsi_iser_session_create(struct iscsi_endpoint *ep,
>   						   SHOST_DIX_GUARD_CRC);
>   		}
>
> +		/*
> +		 * Limit the sg_tablesize and max_sectors based on the device
> +		 * max fastreg page list length.
> +		 */
> +		shost->sg_tablesize = min_t(u32, shost->sg_tablesize,
> +			ib_conn->device->dev_attr.max_fast_reg_page_list_len);
> +		shost->max_sectors =
> +			min(1024, (shost->sg_tablesize * PAGE_SIZE) >> 9);
> +

Steve,

This triggers a compilation warning:
drivers/infiniband/ulp/iser/iscsi_iser.c: In function 
iscsi_iser_session_create:
drivers/infiniband/ulp/iser/iscsi_iser.c:653: warning: comparison of 
distinct pointer types lacks a cast

For next time, let's remove the reviewed-by tags and I'll re-review the
patches.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Steve Wise July 5, 2015, 1:15 p.m. UTC | #2
On 7/5/2015 4:57 AM, Sagi Grimberg wrote:
> On 7/2/2015 6:16 PM, Steve Wise wrote:
>> Currently the sg tablesize, which dictates fast register page list
>> depth to use, does not take into account the limits of the rdma device.
>> So adjust it once we discover the device fastreg max depth limit.  Also
>> adjust the max_sectors based on the resulting sg tablesize.
>>
>> Signed-off-by: Steve Wise <swise@opengridcomputing.com>
>> Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
>> ---
>>   drivers/infiniband/ulp/iser/iscsi_iser.c |    9 +++++++++
>>   1 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c 
>> b/drivers/infiniband/ulp/iser/iscsi_iser.c
>> index 6a594aa..0ed8638 100644
>> --- a/drivers/infiniband/ulp/iser/iscsi_iser.c
>> +++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
>> @@ -640,6 +640,15 @@ iscsi_iser_session_create(struct iscsi_endpoint 
>> *ep,
>>                              SHOST_DIX_GUARD_CRC);
>>           }
>>
>> +        /*
>> +         * Limit the sg_tablesize and max_sectors based on the device
>> +         * max fastreg page list length.
>> +         */
>> +        shost->sg_tablesize = min_t(u32, shost->sg_tablesize,
>> + ib_conn->device->dev_attr.max_fast_reg_page_list_len);
>> +        shost->max_sectors =
>> +            min(1024, (shost->sg_tablesize * PAGE_SIZE) >> 9);
>> +
>
> Steve,
>
> This triggers a compilation warning:
> drivers/infiniband/ulp/iser/iscsi_iser.c: In function 
> iscsi_iser_session_create:
> drivers/infiniband/ulp/iser/iscsi_iser.c:653: warning: comparison of 
> distinct pointer types lacks a cast
>
> For next time, let's remove the reviewed-by tags and I'll re-review the
> patches.


Oops.  My bad.


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

Patch

diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 6a594aa..0ed8638 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -640,6 +640,15 @@  iscsi_iser_session_create(struct iscsi_endpoint *ep,
 						   SHOST_DIX_GUARD_CRC);
 		}
 
+		/*
+		 * Limit the sg_tablesize and max_sectors based on the device
+		 * max fastreg page list length.
+		 */
+		shost->sg_tablesize = min_t(u32, shost->sg_tablesize,
+			ib_conn->device->dev_attr.max_fast_reg_page_list_len);
+		shost->max_sectors =
+			min(1024, (shost->sg_tablesize * PAGE_SIZE) >> 9);
+
 		if (iscsi_host_add(shost,
 				   ib_conn->device->ib_device->dma_device)) {
 			mutex_unlock(&iser_conn->state_mutex);