[Openib-windows] mtu_path problem
Fabian Tillier
ftillier at silverstorm.com
Fri Aug 4 01:06:27 PDT 2006
Hi Leo,
On 8/3/06, Leonid Keller <leonid at mellanox.co.il> wrote:
>
> Hi Fab,
> I've added a sanity check in mthca_modify_qp (kernel space), checking MTU
> value.
> (not yet sync'ed with OpenIb repository):
> ------------------------------------------------------------------------------------------------------------------
> /* leave tavor_sched_queue as 0 */
>
> if (qp->transport == MLX || qp->transport == UD)
> qp_context->mtu_msgmax = (IB_MTU_2048 << 5) | 11;
> else if (attr_mask & IB_QP_PATH_MTU) {
> /* check MTU */
> if (attr->path_mtu < IB_MTU_256 || attr->path_mtu > IB_MTU_2048) {
> HCA_PRINT(TRACE_LEVEL_ERROR ,HCA_DBG_QP,
> ("path MTU (%u) is invalid\n", attr->path_mtu));
> goto out_mailbox;
> }
> qp_context->mtu_msgmax = (u8)((attr->path_mtu << 5) | 31);
> }
> -------------------------------------------------------------------------------------------------------------------
>
> This check caused failing of cm_test, because on changing to RTR state the
> MTU value was incorrect (132).
> I guess, that IBAL CM layer just "forgets" to set this value.
Note that 132 is 0x84. I take it the failure occurred only on the
active side, not the passive side. What is happening is the code is
saving the MTU including the MTU selector.
Fixed in 440.
> It worked beforehand, because IBAL CM would set the right value on
> transition to RTS state, which would correct the previous incorrect value.
>
> For now we outcommented the 'goto' after the error print, but we would like
> to fix the bug and to keep the sanity check.
I agree we should keep the check.
Thanks for pointing this out.
- Fab
More information about the ofw
mailing list