* Question about IB_QP_CUR_STATE @ 2020-07-08 9:41 liweihang 2020-07-08 12:20 ` Leon Romanovsky 2020-07-08 12:42 ` Gal Pressman 0 siblings, 2 replies; 9+ messages in thread From: liweihang @ 2020-07-08 9:41 UTC (permalink / raw) To: linux-rdma; +Cc: Linuxarm Hi all, I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration ib_qp_attr_mask. In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this is the current QP state". Why we need to get current qp state from users instead of drivers? For example, why the users are allowed to modify qp from RTR to RTS again even if the qp's state in driver and hardware has already been RTS. I would be appretiate it if someone can help with this. Weihang ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-08 9:41 Question about IB_QP_CUR_STATE liweihang @ 2020-07-08 12:20 ` Leon Romanovsky 2020-07-08 12:42 ` Gal Pressman 1 sibling, 0 replies; 9+ messages in thread From: Leon Romanovsky @ 2020-07-08 12:20 UTC (permalink / raw) To: liweihang; +Cc: linux-rdma, Linuxarm On Wed, Jul 08, 2020 at 09:41:26AM +0000, liweihang wrote: > Hi all, > > I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration > ib_qp_attr_mask. > > In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this > is the current QP state". Why we need to get current qp state from users > instead of drivers? > > For example, why the users are allowed to modify qp from RTR to RTS again > even if the qp's state in driver and hardware has already been RTS. > > I would be appretiate it if someone can help with this. See, IBTA section "11.2.5.2 MODIFY QUEUE PAIR", table 96. "Current QP state" is valid optional attribute in modify_qp() while transition to RTS. I guess that the reason is to sync QP states seen by SW with HW. Thanks > > Weihang ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-08 9:41 Question about IB_QP_CUR_STATE liweihang 2020-07-08 12:20 ` Leon Romanovsky @ 2020-07-08 12:42 ` Gal Pressman 2020-07-08 15:44 ` Leon Romanovsky 1 sibling, 1 reply; 9+ messages in thread From: Gal Pressman @ 2020-07-08 12:42 UTC (permalink / raw) To: liweihang, linux-rdma; +Cc: Linuxarm On 08/07/2020 12:41, liweihang wrote: > Hi all, > > I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration > ib_qp_attr_mask. > > In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this > is the current QP state". Why we need to get current qp state from users > instead of drivers? > > For example, why the users are allowed to modify qp from RTR to RTS again > even if the qp's state in driver and hardware has already been RTS. > > I would be appretiate it if someone can help with this. > > Weihang > Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP callback although it should only be used in modify operations.. Is there a reason not to remove it? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-08 12:42 ` Gal Pressman @ 2020-07-08 15:44 ` Leon Romanovsky 2020-07-09 6:13 ` Gal Pressman 0 siblings, 1 reply; 9+ messages in thread From: Leon Romanovsky @ 2020-07-08 15:44 UTC (permalink / raw) To: Gal Pressman; +Cc: liweihang, linux-rdma, Linuxarm On Wed, Jul 08, 2020 at 03:42:34PM +0300, Gal Pressman wrote: > On 08/07/2020 12:41, liweihang wrote: > > Hi all, > > > > I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration > > ib_qp_attr_mask. > > > > In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this > > is the current QP state". Why we need to get current qp state from users > > instead of drivers? > > > > For example, why the users are allowed to modify qp from RTR to RTS again > > even if the qp's state in driver and hardware has already been RTS. > > > > I would be appretiate it if someone can help with this. > > > > Weihang > > > > Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP > callback although it should only be used in modify operations.. Is there a > reason not to remove it? IBTA section "11.2.5.3 QUERY QUEUE PAIR" has line about IB_QP_CUR_STATE. It is one of output modifiers. Thanks ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-08 15:44 ` Leon Romanovsky @ 2020-07-09 6:13 ` Gal Pressman 2020-07-10 10:11 ` liweihang 2020-07-12 10:44 ` Leon Romanovsky 0 siblings, 2 replies; 9+ messages in thread From: Gal Pressman @ 2020-07-09 6:13 UTC (permalink / raw) To: Leon Romanovsky; +Cc: liweihang, linux-rdma, Linuxarm On 08/07/2020 18:44, Leon Romanovsky wrote: > On Wed, Jul 08, 2020 at 03:42:34PM +0300, Gal Pressman wrote: >> On 08/07/2020 12:41, liweihang wrote: >>> Hi all, >>> >>> I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration >>> ib_qp_attr_mask. >>> >>> In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this >>> is the current QP state". Why we need to get current qp state from users >>> instead of drivers? >>> >>> For example, why the users are allowed to modify qp from RTR to RTS again >>> even if the qp's state in driver and hardware has already been RTS. >>> >>> I would be appretiate it if someone can help with this. >>> >>> Weihang >>> >> >> Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP >> callback although it should only be used in modify operations.. Is there a >> reason not to remove it? > > IBTA section "11.2.5.3 QUERY QUEUE PAIR" has line about IB_QP_CUR_STATE. > It is one of output modifiers. > > Thanks > It says the current QP state should be returned, that's what qp_state field is used for. According to the man pages: libibverbs/man/ibv_query_qp.3: enum ibv_qp_state qp_state; /* Current QP state */ enum ibv_qp_state cur_qp_state; /* Current QP state - irrelevant for ibv_query_qp */ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-09 6:13 ` Gal Pressman @ 2020-07-10 10:11 ` liweihang 2020-07-12 10:44 ` Leon Romanovsky 1 sibling, 0 replies; 9+ messages in thread From: liweihang @ 2020-07-10 10:11 UTC (permalink / raw) To: Gal Pressman, Leon Romanovsky; +Cc: linux-rdma, Linuxarm On 2020/7/9 14:14, Gal Pressman wrote: > On 08/07/2020 18:44, Leon Romanovsky wrote: >> On Wed, Jul 08, 2020 at 03:42:34PM +0300, Gal Pressman wrote: >>> On 08/07/2020 12:41, liweihang wrote: >>>> Hi all, >>>> >>>> I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration >>>> ib_qp_attr_mask. >>>> >>>> In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this >>>> is the current QP state". Why we need to get current qp state from users >>>> instead of drivers? >>>> >>>> For example, why the users are allowed to modify qp from RTR to RTS again >>>> even if the qp's state in driver and hardware has already been RTS. >>>> >>>> I would be appretiate it if someone can help with this. >>>> >>>> Weihang >>>> >>> >>> Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP >>> callback although it should only be used in modify operations.. Is there a >>> reason not to remove it? >> >> IBTA section "11.2.5.3 QUERY QUEUE PAIR" has line about IB_QP_CUR_STATE. >> It is one of output modifiers. >> >> Thanks >> > > It says the current QP state should be returned, that's what qp_state field is used for. > According to the man pages: > > libibverbs/man/ibv_query_qp.3: > enum ibv_qp_state qp_state; /* Current QP state */ > enum ibv_qp_state cur_qp_state; /* Current QP state - irrelevant for ibv_query_qp */ > Hi Gal and Leon, Thanks for your reply, as Gal said, I can't find the reason why the IBTA use cur_qp_state either. I'll take a closer look at the protocol. Weihang ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-09 6:13 ` Gal Pressman 2020-07-10 10:11 ` liweihang @ 2020-07-12 10:44 ` Leon Romanovsky 2020-07-12 10:53 ` Gal Pressman 1 sibling, 1 reply; 9+ messages in thread From: Leon Romanovsky @ 2020-07-12 10:44 UTC (permalink / raw) To: Gal Pressman; +Cc: liweihang, linux-rdma, Linuxarm On Thu, Jul 09, 2020 at 09:13:45AM +0300, Gal Pressman wrote: > On 08/07/2020 18:44, Leon Romanovsky wrote: > > On Wed, Jul 08, 2020 at 03:42:34PM +0300, Gal Pressman wrote: > >> On 08/07/2020 12:41, liweihang wrote: > >>> Hi all, > >>> > >>> I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration > >>> ib_qp_attr_mask. > >>> > >>> In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this > >>> is the current QP state". Why we need to get current qp state from users > >>> instead of drivers? > >>> > >>> For example, why the users are allowed to modify qp from RTR to RTS again > >>> even if the qp's state in driver and hardware has already been RTS. > >>> > >>> I would be appretiate it if someone can help with this. > >>> > >>> Weihang > >>> > >> > >> Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP > >> callback although it should only be used in modify operations.. Is there a > >> reason not to remove it? > > > > IBTA section "11.2.5.3 QUERY QUEUE PAIR" has line about IB_QP_CUR_STATE. > > It is one of output modifiers. > > > > Thanks > > > > It says the current QP state should be returned, that's what qp_state field is used for. > According to the man pages: > > libibverbs/man/ibv_query_qp.3: > enum ibv_qp_state qp_state; /* Current QP state */ > enum ibv_qp_state cur_qp_state; /* Current QP state - irrelevant for ibv_query_qp */ I don't think that users read it, because ibv_cmd_query_qp() filled qp_state to be equal to cur_qp_state from day one. Thanks ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-12 10:44 ` Leon Romanovsky @ 2020-07-12 10:53 ` Gal Pressman 2020-07-12 11:01 ` Leon Romanovsky 0 siblings, 1 reply; 9+ messages in thread From: Gal Pressman @ 2020-07-12 10:53 UTC (permalink / raw) To: Leon Romanovsky; +Cc: liweihang, linux-rdma, Linuxarm On 12/07/2020 13:44, Leon Romanovsky wrote: > On Thu, Jul 09, 2020 at 09:13:45AM +0300, Gal Pressman wrote: >> On 08/07/2020 18:44, Leon Romanovsky wrote: >>> On Wed, Jul 08, 2020 at 03:42:34PM +0300, Gal Pressman wrote: >>>> On 08/07/2020 12:41, liweihang wrote: >>>>> Hi all, >>>>> >>>>> I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration >>>>> ib_qp_attr_mask. >>>>> >>>>> In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this >>>>> is the current QP state". Why we need to get current qp state from users >>>>> instead of drivers? >>>>> >>>>> For example, why the users are allowed to modify qp from RTR to RTS again >>>>> even if the qp's state in driver and hardware has already been RTS. >>>>> >>>>> I would be appretiate it if someone can help with this. >>>>> >>>>> Weihang >>>>> >>>> >>>> Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP >>>> callback although it should only be used in modify operations.. Is there a >>>> reason not to remove it? >>> >>> IBTA section "11.2.5.3 QUERY QUEUE PAIR" has line about IB_QP_CUR_STATE. >>> It is one of output modifiers. >>> >>> Thanks >>> >> >> It says the current QP state should be returned, that's what qp_state field is used for. >> According to the man pages: >> >> libibverbs/man/ibv_query_qp.3: >> enum ibv_qp_state qp_state; /* Current QP state */ >> enum ibv_qp_state cur_qp_state; /* Current QP state - irrelevant for ibv_query_qp */ > > I don't think that users read it, because ibv_cmd_query_qp() filled > qp_state to be equal to cur_qp_state from day one. Where do you see that? I see: ibv_cmd_query_qp(): attr->qp_state = resp.qp_state; attr->cur_qp_state = resp.cur_qp_state; ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Question about IB_QP_CUR_STATE 2020-07-12 10:53 ` Gal Pressman @ 2020-07-12 11:01 ` Leon Romanovsky 0 siblings, 0 replies; 9+ messages in thread From: Leon Romanovsky @ 2020-07-12 11:01 UTC (permalink / raw) To: Gal Pressman; +Cc: liweihang, linux-rdma, Linuxarm On Sun, Jul 12, 2020 at 01:53:13PM +0300, Gal Pressman wrote: > On 12/07/2020 13:44, Leon Romanovsky wrote: > > On Thu, Jul 09, 2020 at 09:13:45AM +0300, Gal Pressman wrote: > >> On 08/07/2020 18:44, Leon Romanovsky wrote: > >>> On Wed, Jul 08, 2020 at 03:42:34PM +0300, Gal Pressman wrote: > >>>> On 08/07/2020 12:41, liweihang wrote: > >>>>> Hi all, > >>>>> > >>>>> I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration > >>>>> ib_qp_attr_mask. > >>>>> > >>>>> In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this > >>>>> is the current QP state". Why we need to get current qp state from users > >>>>> instead of drivers? > >>>>> > >>>>> For example, why the users are allowed to modify qp from RTR to RTS again > >>>>> even if the qp's state in driver and hardware has already been RTS. > >>>>> > >>>>> I would be appretiate it if someone can help with this. > >>>>> > >>>>> Weihang > >>>>> > >>>> > >>>> Talking about IB_QP_CUR_STATE, I see many drivers filling it in their query QP > >>>> callback although it should only be used in modify operations.. Is there a > >>>> reason not to remove it? > >>> > >>> IBTA section "11.2.5.3 QUERY QUEUE PAIR" has line about IB_QP_CUR_STATE. > >>> It is one of output modifiers. > >>> > >>> Thanks > >>> > >> > >> It says the current QP state should be returned, that's what qp_state field is used for. > >> According to the man pages: > >> > >> libibverbs/man/ibv_query_qp.3: > >> enum ibv_qp_state qp_state; /* Current QP state */ > >> enum ibv_qp_state cur_qp_state; /* Current QP state - irrelevant for ibv_query_qp */ > > > > I don't think that users read it, because ibv_cmd_query_qp() filled > > qp_state to be equal to cur_qp_state from day one. > > Where do you see that? > > I see: > ibv_cmd_query_qp(): > attr->qp_state = resp.qp_state; > attr->cur_qp_state = resp.cur_qp_state; It comes from the the kernel as is and in the kernel: mlx5_ib_query_qp(): 4699 qp_attr->qp_state = qp->state; 4700 qp_attr->cur_qp_state = qp_attr->qp_state; mlx4_ib_query_qp(): 4049 qp->state = to_ib_qp_state(mlx4_state); 4050 qp_attr->qp_state = qp->state; Thanks ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-07-12 11:02 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-08 9:41 Question about IB_QP_CUR_STATE liweihang 2020-07-08 12:20 ` Leon Romanovsky 2020-07-08 12:42 ` Gal Pressman 2020-07-08 15:44 ` Leon Romanovsky 2020-07-09 6:13 ` Gal Pressman 2020-07-10 10:11 ` liweihang 2020-07-12 10:44 ` Leon Romanovsky 2020-07-12 10:53 ` Gal Pressman 2020-07-12 11:01 ` Leon Romanovsky
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.