[ofw] RE: [PATCH v2] ib/port_attr: report active width as part of port attributes
Leonid Keller
leonid at mellanox.co.il
Fri Aug 14 00:13:29 PDT 2009
OK with me
> -----Original Message-----
> From: Sean Hefty [mailto:sean.hefty at intel.com]
> Sent: Thursday, August 13, 2009 9:04 PM
> To: Leonid Keller; ofw at lists.openfabrics.org
> Subject: [PATCH v2] ib/port_attr: report active width as part
> of port attributes
>
> Return the active width in the port attributes reported by the HCA.
> Because the kernel and user space share the same source
> files, to avoid breaking the ABI, rename link_width_supported
> field to active_width and use that field to return the value.
> link_width_supported is currently uninitialized and in the
> svn tree unused, so repurposing the field should have minimal
> impact. However, this change will break the API.
> Applications that reference the link_width_supported field
> from struct _ib_port_attr will require a minor update if recompiled.
>
> Update winverbs to report this value and fill in other
> missing fields from the port attribute structure. This fix
> allows reporting the correct values through the libibverbs
> port and ibv_devinfo example utility.
>
> Signed-off-by: Sean Hefty <sean.hefty at intel.com>
> ---
> changes from v1: renamed link_width_supported field
>
> diff -up -r -X \mshefty\scm\winof\trunk\docs\dontdiff.txt -I
> '\$Id:' trunk\inc\iba/ib_types.h branches\winverbs\inc\iba/ib_types.h
> --- trunk\inc\iba/ib_types.h 2009-06-11 10:33:24.189875000 -0700
> +++ branches\winverbs\inc\iba/ib_types.h 2009-08-13
> 10:55:27.403564800 -0700
> @@ -8724,11 +8724,7 @@ typedef struct _ib_port_attr
> ib_net16_t lid;
> uint8_t lmc;
>
> - /*
> - * LinkWidthSupported as defined in PortInfo. Required
> to calculate
> - * inter-packet delay (a.k.a. static rate).
> - */
> - uint8_t link_width_supported;
> + uint8_t active_width;
>
> uint16_t max_vls;
>
> diff -up -r -X \mshefty\scm\winof\trunk\docs\dontdiff.txt -I
> '\$Id:' trunk\hw/mlx4/kernel/hca/data.c
> branches\winverbs\hw/mlx4/kernel/hca/data.c
> --- trunk\hw/mlx4/kernel/hca/data.c 2009-06-11
> 10:33:38.377375000 -0700
> +++ branches\winverbs\hw/mlx4/kernel/hca/data.c
> 2009-08-13 10:41:52.762601000 -0700
> @@ -347,6 +347,7 @@ from_hca_cap(
> ibal_port_p->max_msg_size =
> mthca_port_p->max_msg_sz;
> ibal_port_p->mtu =
> (uint8_t)mthca_port_p->max_mtu;
> ibal_port_p->active_speed =
> mthca_port_p->active_speed;
> + ibal_port_p->active_width =
> mthca_port_p->active_width;
> ibal_port_p->phys_state =
> mthca_port_p->phys_state;
>
> ibal_port_p->subnet_timeout =
> mthca_port_p->subnet_timeout; diff -up -r -X
> \mshefty\scm\winof\trunk\docs\dontdiff.txt -I '\$Id:'
> trunk\hw/mthca/kernel/hca_data.c
> branches\winverbs\hw/mthca/kernel/hca_data.c
> --- trunk\hw/mthca/kernel/hca_data.c 2009-06-11
> 10:33:47.846125000 -0700
> +++ branches\winverbs\hw/mthca/kernel/hca_data.c
> 2009-08-13 10:41:53.137533800 -0700
> @@ -323,6 +323,7 @@ mlnx_conv_hca_cap(
> ibal_port_p->max_msg_size = mthca_port_p->max_msg_sz;
> ibal_port_p->mtu = (uint8_t)mthca_port_p->max_mtu;
> ibal_port_p->active_speed = mthca_port_p->active_speed;
> + ibal_port_p->active_width = mthca_port_p->active_width;
> ibal_port_p->phys_state = mthca_port_p->phys_state;
>
> ibal_port_p->subnet_timeout =
> mthca_port_p->subnet_timeout; diff -up -r -X
> \mshefty\scm\winof\trunk\docs\dontdiff.txt -I '\$Id:'
> trunk\core\winverbs/kernel/wv_device.c
> branches\winverbs\core\winverbs/kernel/wv_device.c
> --- trunk\core\winverbs/kernel/wv_device.c 2009-06-11
> 10:32:48.283625000 -0700
> +++ branches\winverbs\core\winverbs/kernel/wv_device.c
> 2009-08-13 10:42:24.665309400 -0700
> @@ -517,7 +517,7 @@ static void WvConvertPortAttr(WV_IO_PORT {
> WvConvertPortCap(&pAttributes->PortCabilityFlags,
> &pPortAttr->cap);
> pAttributes->State = pPortAttr->link_state;
> - pAttributes->MaxMtu = 0; //
> TODO: missing in ib_port_attr_t
> + pAttributes->MaxMtu = 0x80 <<
> pPortAttr->mtu;
> pAttributes->ActiveMtu = 0x80 << pPortAttr->mtu;
> pAttributes->GidTableLength = pPortAttr->num_gids;
> pAttributes->MaxMessageSize = (UINT32)
> pPortAttr->max_msg_size;
> @@ -531,9 +531,9 @@ static void WvConvertPortAttr(WV_IO_PORT
> pAttributes->SmSl = pPortAttr->sm_sl;
> pAttributes->SubnetTimeout = pPortAttr->subnet_timeout;
> pAttributes->InitTypeReply = pPortAttr->init_type_reply;
> - pAttributes->ActiveWidth =
> pPortAttr->link_width_supported;
> - pAttributes->ActiveSpeed = 0; // TODO:
> missing in ib_port_attr_t
> - pAttributes->PhysicalState = 0; // TODO:
> missing in ib_port_attr_t
> + pAttributes->ActiveWidth = pPortAttr->active_width;
> + pAttributes->ActiveSpeed = pPortAttr->active_speed;
> + pAttributes->PhysicalState = pPortAttr->phys_state;
> pAttributes->Reserved[0] = 0;
> pAttributes->Reserved[1] = 0;
> }
>
>
More information about the ofw
mailing list