Re: Kernel v4.16 / v4.17 SRP and SRPT patches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2018-01-13 at 09:53 -0500, Laurence Oberman wrote:
> [  239.502025] ib_srpt Received SRP_LOGIN_REQ with i_port_id
> 7cfe:9003:0072:6e4f:7cfe:9003:0072:6ed3, t_port_id
> 7cfe:9003:0072:6e4e:7cfe:9003:0072:6e4e and it_iu_len 2116 on port 1
> (guid=fe80:0000:0000:0000:7cfe:9003:0072:6e4f); pkey 0xffff
> [  239.623881] ib_srpt failed to create queue pair with sq_size = 16384
> (-12) - retrying
> [  239.669381] ib_srpt failed to create queue pair with sq_size = 8192
> (-12) - retrying
> [  239.715366] ib_srpt Received SRP_LOGIN_REQ with i_port_id
> 7cfe:9003:0072:6e4e:7cfe:9003:0072:6ed2, t_port_id
> 7cfe:9003:0072:6e4e:7cfe:9003:0072:6e4e and it_iu_len 2116 on port 1
> (guid=fe80:0000:0000:0000:7cfe:9003:0072:6e4e); pkey 0xffff
> [  239.831661] ib_srpt failed to create queue pair with sq_size = 16384
> (-12) - retrying
> [  239.877193] ib_srpt failed to create queue pair with sq_size = 8192
> (-12) - retrying

Hello Laurence,

These messages are expected and do not indicate a failure. The retry loop
the above messages refer to got introduced a long time ago:

commit ab477c1ff5e0a744c072404bf7db51bfe1f05b6e
Author: Bart Van Assche <bvanassche@xxxxxxx>
Date:   Sun Oct 19 18:05:33 2014 +0300

    srp-target: Retry when QP creation fails with ENOMEM
    
    It is not guaranteed to that srp_sq_size is supported
    by the HCA. So if we failed to create the QP with ENOMEM,
    try with a smaller srp_sq_size. Keep it up until we hit
    MIN_SRPT_SQ_SIZE, then fail the connection.
    
[ ... ]

The only recent change in that code is that retry attempts are now logged.
>From commit 0e9949f1db6c "IB/srpt: Add RDMA/CM support":

+       if (ret) {
+               bool retry = sq_size > MIN_SRPT_SQ_SIZE;
+
+               pr_err("failed to create queue pair with sq_size = %d (%d)%s\n",
+                      sq_size, ret, retry ? " - retrying" : "");
+               if (retry) {
+                       ib_free_cq(ch->cq);
+                       sq_size = max(sq_size / 2, MIN_SRPT_SQ_SIZE);
+                       goto retry;
+               } else {
+                       goto err_destroy_cq;
                }
-               pr_err("failed to create_qp ret= %d\n", ret);
-               goto err_destroy_cq;
        }

Do you perhaps want that pr_err() to be changed into a pr_debug() for retry
attempts?

Thanks,

Bart.��.n��������+%������w��{.n�����{���fk��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux