All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Zhang <markzhang@nvidia.com>
To: Haakon Bugge <haakon.bugge@oracle.com>
Cc: Doug Ledford <dledford@redhat.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	"Leon Romanovsky" <leon@kernel.org>,
	OFED mailing list <linux-rdma@vger.kernel.org>
Subject: Re: [PATCH for-next] RDMA/cma: Remove unnecessary INIT->INIT transition
Date: Mon, 21 Jun 2021 20:05:05 +0800	[thread overview]
Message-ID: <110980ae-cd27-4c3a-5e88-202f7e425832@nvidia.com> (raw)
In-Reply-To: <BA591410-6EF9-499C-B383-12A0A550D46E@oracle.com>

On 6/21/2021 4:44 PM, Haakon Bugge wrote:
> External email: Use caution opening links or attachments
> 
> 
>> On 20 Jun 2021, at 14:19, Mark Zhang <markzhang@nvidia.com> wrote:
>>
>> On 6/17/2021 11:46 PM, Håkon Bugge wrote:
>>> External email: Use caution opening links or attachments
>>> In rdma_create_qp(), a connected QP will be transitioned to the INIT
>>> state.
>>> Afterwards, the QP will be transitioned to the RTR state by the
>>> cma_modify_qp_rtr() function. But this function starts by performing
>>> an ib_modify_qp() to the INIT state again, before another
>>> ib_modify_qp() is performed to transition the QP to the RTR state.
>>> Hence, there is no need to transition the QP to the INIT state in
>>> rdma_create_qp().
>>
>> The comment in cma_modify_qp_rtr() says:
>>     /* Need to update QP attributes from default values. */
>>
>> So maybe both are needed? E.g., qp_attr->qp_access_flags maybe updated in cm_init_qp_init_attr()?
> 
> I'll give you two reasons why that is not the case :-)
> 
> 1. In cm_init_qp_init_attr(), which sets the mask both places, the mask is set hard to
> 
>          IB_QP_STATE | IB_QP_ACCESS_FLAGS | IB_QP_PKEY_INDEX | IB_QP_PORT
> 
> If we do the old RESET -> INIT -> INIT, it is the last modify_qp to INIT which will persist. And therefore, the values will be the same if we skip RESET -> INIT.
> 
> 2. I think the rationale behind modifying the QP to INIT in rdma_create_qp() was to enable ULPs to tweak some of the values. But no ULP calls modify_qp on a QP created by rdma_create_qp(). And if one did, the values would be overwritten when the state transitions to RTR.
> 

Got it, thanks Haakon:)

  reply	other threads:[~2021-06-21 12:05 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-17 15:46 [PATCH for-next] RDMA/cma: Remove unnecessary INIT->INIT transition Håkon Bugge
2021-06-17 20:40 ` kernel test robot
2021-06-17 20:40   ` kernel test robot
2021-06-20 12:19 ` Mark Zhang
2021-06-21  8:44   ` Haakon Bugge
2021-06-21 12:05     ` Mark Zhang [this message]
2021-06-21 10:07 ` Leon Romanovsky
2021-06-21 12:14   ` Haakon Bugge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=110980ae-cd27-4c3a-5e88-202f7e425832@nvidia.com \
    --to=markzhang@nvidia.com \
    --cc=dledford@redhat.com \
    --cc=haakon.bugge@oracle.com \
    --cc=jgg@nvidia.com \
    --cc=leon@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.